Hola.
Si el valor que se asigna en el trigger, es la clave primaria, yo prefiero utilizar un procedimiento almacenado que devuelva el nuevo valor, y asignarlo directamente al clientdataset en Delphi (en lugar de que se haga automaticamente en un trigger).
Ejplo.:
Código SQL
[-]
CREATE PROCEDURE "CLIENTS_AutoInc"
RETURNS (NOU_ID INTEGER)
AS
BEGIN
NOU_ID = GEN_ID(CLIENTS_GEN, 1);
END
PD : Si el trigger no está asignando la clave primaria, entonces antes de llamar al ApplyUpdates, guardate en una variable el valor de clave primaria. Después de llamar al ApplyUpdates refresca el clientdataset, y posicionate de nuevo en el registro, mediante un Locate con la clave primaria que está en la variable.
Saludos.