Dracul, выполнить встроенную процедуру, которая добавит запись и сама при помощи GEN_ID(mygenerator,1) присвоит полю ID и вернёт значение
CREATE PROCEDURE MyInsert(
параметр1 тип,
параметр2 тип,
параметр3 тип
)
RETURNS (
retID BIGINT
)
AS
begin
retID=GEN_ID(mygenerator,1);
INSERT INTO MyTable (поле1,поле2,поле3,ID) VALUES (:параметр1,:параметр2,:параметр3,:retID);
suspend;
end
ну а ежели известно, что после вставки записи никто не вмешается и не вставит ещё, то управление ID можно предоставить триггеру вставки, а значение генератора получить как
CREATE PROCEDURE GetMyGeneratorInsert
RETURNS (
retID BIGINT
)
AS
begin
retID=GEN_ID(mygenerator,0);
suspend;
end