Hola compañero.
Si se genera el autoincremento, más no se refleja en delphi, hasta que no hagas un commit; abres y cirres el datset.
Y eso es por la forma de que se genera el autoincremento en trigger,
lo que puedes hacer es:
crearte un procedimiento almacenado que obtenga el generador usado inmediatamente despues de haber hecho el post.
o englobar en un solo procedimiento em insert de la tbla y la obtención del ID autoincrementado.
es decir:
Código SQL
[-]CREATE PROCEDURE PR_OBTENER_ULT_ID_COMPRA
RETURNS (
ID_COMPRA INTEGER)
AS
BEGIN
ID_COMPRA = GEN_ID(GEN_COMPRAS_ID_COMPRAS, 0);
SUSPEND;
END
con esto puedes obtener el id asignado...
A TODOS LOS COMPAÑEROS, QUE USAN FIREBIRD O INTERBASE. QUE HACEN ANTE ESTAS SITUACIONES.
UN CASO PRACTICO ES CUANDO TIENELAS TABLAS EL MAESTRO Y EL DATALLE , Y EN EL MAESTRO, UNA VEZ QUE DAS DE ALTA NO TIENES SU NUEVO ID, PARA PODER INSERTAR EL DETALLE CON ESE ID DEL PADRE.
espero haberme explicado.
Saludos desde Guadalajara