Du kannst nicht die Transaktion schliessen und dann auf die Ergebnisse zurückgreifen. Mit einem RollbackRetaining sollte es gehen. Habe das aber nicht probiert.
Ansonsten mache es doch über eine Variable. Das könnte dann so aussehen.
Die StoredProc
Code:
Create Procedure Test ()
Returns (
oID Integer)
AS
Begin
Insert Into Haus (ID)
Values (gen_ID(gen_haus_ID,1));
Select Gen_ID(gen_Haus_ID,0) From RDB$Database
Into :oID;
Suspend;
end;
Und im Prog
Code:
var ID: Integer;
TransOpen;
With SP_Test Do
Begin
ExecProc;
ID:= Params[0].value;
end;
CloseTrans
Und über die ID kannst Du dann den DS wieder aufrufen.
Select ID From DB WHERE ....