Moin
FB'ler (innen)
Wie sollt's nicht anders sein... Ich stehe mal wieder auf dem Schlauch.
Ich würde gerne per dynamic
SQL unter Angabe des Tabellennamens den nächsten Wert aus dem Generator bekommen.
Dumm ist nur, dass ich NIRGENDS finden kann wie man Variablen in einem dynamischen Block deklariert.
Die Doku von FireBird schweigt sich hier aus. (wie bei eigentlich allem anderem auch
)
Ich habe es also zuerst so probiert: (rein "experimentelles Konstrukt" ohne ExceptionHandling & Co...
)
Delphi-Quellcode:
create procedure GetID (TableName varchar(55))
returns (NewID integer)
as
begin
execute statement 'declare variable NewID integer; '||
'begin '||
' :NewID = GEN_ID(GEN_'|| :TableName ||'_ID,1); '||
'end;'
into :NewID;
suspend;
end
Fehler!
Weitere erfolglose Versuche:
Delphi-Quellcode:
execute statement 'declare variable NewID integer; '||
'begin '||
' NewID = GEN_ID(GEN_'|| :TableName||'_ID,1); '||
'end;'
into :NewID;
Delphi-Quellcode:
execute statement 'begin '||
' :NewID = GEN_ID(GEN_'|| :TableName||'_ID,1); '||
'end;'
into :NewID;
Delphi-Quellcode:
execute statement ' :NewID = GEN_ID(GEN_'|| :TableName||'_ID,1)'
into :NewID;
Weiß hier jemand: Wie ich Variablen in einem dynamischen Block deklarieren und verwenden kann?
Firebird springt ja gerne zwischen den Schreibweisen :[Var] & [Var] hin und her.