mach das dann lieber über extra prozeduren, in fb3 könntest du die als hilfsprozeduren in einer einer
package ablegen
und auf der results direkt deine where bedingungen legen (packages sind so ähnlich wie units in delphi, was außerhalb
sichtbar ist muss dann in den head).
Aufruf erfolgt dann in fb3 über
Code:
select * from tools.getusertables
wenn du das in
fb<3 machen willst, nimm einfach die beiden sps aus dem recreate teil und erstelle die ohne
package, aufruf dann
ohne tools. vor dem objektnamen
Code:
SET TERM ^ ;
CREATE OR ALTER
package tools
as
begin
procedure GetUserTables
returns (tblname varchar(31));
end^
RECREATE
package body tools
as
begin
procedure GetAllTableName
returns (tbl varchar(80))
as
begin
for select rdb$relation_name from rdb$relations into tbl do
suspend;
when any do
begin
--hier kannst du z.B.
exception wie hier einfach ignorieren
--oder mit
exception exceptionname selber definieren
--falls du ''Stringkonstanten'' braucht, doublequotes nehmen
end
end
procedure GetUserTables
returns (tblname varchar(31))
as
begin
for select tbl from GetallTableName where tbl not containing '$' into tblname do
begin
suspend ;
end
end
end
^
SET TERM ; ^
/* Existing privileges on this
package */
GRANT EXECUTE ON
PACKAGE TOOLS TO SYSDBA;