Also ich würde hier auch dringend zu einem Trigger raten.
Ist der Trigger einmal an der Tabelle musst du dir keine Sorgen mehr machen, ob der PK eindeutig ist. Egal wie auf die Tabelle zugegriffen wird.
Zu dem von Lemmy angesprochenen Problem:
Gibts es in
IB sowas wie die Returning Clause?
SQL-Code:
Insert INTO RECHNUNG
(STELLE
,BEREICH
,R_NUMMER
,R_STELLER
,R_DATUM
,R_ARTIKEL
,R_ANZ
,R_EPREIS
,R_MWST)
VALUES
(:STELLE
,:BEREICH
,:R_NUMMER
,:R_STELLER
,:R_DATUM
,:R_ARTIKEL
,:R_ANZ
,:R_EPREIS
,:R_MWST)
Returning LfdNr INTO :o_LfdNr
o_LfdNr müsste dann als Ouput Parameter eingestellt sein und enthält nach dem Insert die neue ID.