In IBExpert schlägt also der Trigger zu. Ist ja auch klar, weil der in der Datenbank angelegt wurde. Angeblich ist das im Delphi-Programm aber nicht so (zumindest von mir auch nicht nachvollziehbar).
Steht doch klar und deutlich im Trigger:
as
begin
if (new.counter is null) then
new.counter = gen_id(gencounter,1);
end
Der setzt genau dann und
nur dann den Wert, wenn das Feld
null ist.
Es hängt also davon ab, was Firedac als Standard für ein nicht belegtes integer-Feld übergibt.