Um solche Späße komplett zu vermeiden kann man auch was ganz anderes machen. Gerade in deinem Fall dürfte sich das anbieten da es wie ein klasisches Insert aussieht.
Nutze
SQL. Ala :
Delphi-Quellcode:
query.SQL.Text := "INSERT INTO [fields ...] VALUES (...) "
query.ParamByName(...)...
query.Open;
Ich kenne FireBird nicht gut genug um dir zu sagen wie Du die AutoInc Id zurück bekommst. Bei ADS gibt es dafür eine
DB seitige function "LastAutoInc" die ich nach dem Insert im gleichen Script aufrufe (deswegen nicht ExecSQL, sondern Open).
Arbeite mit einer lokal erzeugten
Query, oder einer die nur für diese Aufgabe da ist. Wer mixt macht sich langfristig zusätzlichen Ärger.