Do könntest die Tabelle sperren oder hoffen, das es wie bei Oracle auch in
IB eine RETURNING-Clause gibt:
Delphi-Quellcode:
Var
NewID :Integer;
Begin
With Query Do
Begin
SQL.Text :=
'
INSERT INTO Tabelle (Feld2) VALUES (:i_Value)' + #10 +
'
RETURNING ID INTO :o_ID';
Prepared := True;
Parameters.ParamByName('
i_Value').Value := '
Hallo';
Parameters.ParamByName('
o_ID').Direction := pdOutput;
ExecSQL;
NewID := Parameters.ParamByName('
o_ID').Value;
End;
End;