Чем то мне это напоминает в процедуре
вместо
ID = GEN_ID(....);

написать
select GEN_ID(...) from rdb$database into :ID;

Ответить