Wird der Wert nicht vom
DBMS automatisch erzeugt oder soll das wirklich deine Anwendung machen?
Ich kenne Firebird jetzt nicht, aber wie verlässlich ist das denn, sich den Schlüssel im Vorab zu holen und darauf zu hoffen, dass in der Zwischenzeit niemand anderes einfügt und diesen Wert schon "verbraucht"?