Ich würd es auch mit einer Procedure probieren. Dein Programm sollte dann folgendes machen:
Delphi-Quellcode:
var
i: integer;
begin
ibsql1.SQL.Text := 'select id from myprocedure(:myintwert)';
ibsqll.ParamByName('myintwert').AsInteger := 20;
ibsql1.Open;
if not ibsqll.Eof then
i := ibsqll.FieldByName('ID').AsInteger
else
i := -1;
ibsqll.Close;
Und hier die Procedure dazu:
SQL-Code:
create procedure myprocedure (
myintwert integer
)
returns (
id integer
)
as
begin
insert into MyTable (MyIntWert)
values (:myintwert);
// hier Deine Berechnungen
id = gen_id(generator_name,1); // oder wie auch immer du den wert bekommst...
suspend;
end
Gruß,
Marcel