Почему бы сначала не получить следующее значение для VoucherNo, а затем
"INSERT INTO table1 (vno, vodate,description) VALUES (:VoucherNo,:VoDate,:Description)");
Ваш триггер может быть либо обойден (что неплохо), либо изменен для обнаружения нуля (или <= ноль тоже может быть полезным) и только после этого заполняет поле vno. </p>
create trigger bi_mytable
active before insert position 1
on mytable
as
begin
if (new.vno is null)
then new.vno = next value for gen_VoucherNos;
end
На стороне клиента вы можете:
select gen_id(gen_VoucherNos, 1) from rdb$database;
Изменяя триггер таким образом, вы избавляете себя от головной боли позже, если / когда вы хотите вставить блоки записей