hola gracias por las sugerencias
Código PHP:
Para que vuelva a leer el valor del campo, y se dé cuenta del cambio, tendrás que hacer un Refresh del Dataset.
el código que me genero delphi en el dataset es el siguiente:
Código SQL
[-]
SELECT
ID,
DESCRIPCION
FROM
TCOLORES
Order by id
INSERT INTO TCOLORES(
ID,
DESCRIPCION
)
VALUES(
:ID,
ESCRIPCION
)
UPDATE TCOLORES
SET
DESCRIPCION =
ESCRIPCION
WHERE
ID = :OLD_ID
DELETE FROM
TCOLORES
WHERE
ID = :OLD_ID
SELECT
ID,
DESCRIPCION
FROM
TCOLORES
WHERE
TCOLORES.ID = :OLD_ID
para el commit tengo el siguiente código.
Código Delphi
[-]
Procedure TDataModule2.Guarda(DataSet: TDataSet);
Begin
pFIBTransaccion.CommitRetaining;
End;
y para cancelar
Código Delphi
[-]
Procedure TDataModule2.Cancella(DataSet: TDataSet);
Begin
pFIBTransaccion.RollbackRetaining;
end;
los cuales mando a llamar en el afterpos y afterCancel respectivamente
Código PHP:
guillotmarc:
NOTA : Puedes probar a poner la propiedad AutoGenerateValue del campo persistente, a arAutoInc,
No sabia de esta propiedad pero tambien ya la provee y no funciono
Código PHP:
Yo lo que hago es no calcular esos campos mediante un Trigger, sinó que obtengo el nuevo valor mediante un procedimiento almacenado
El procedimiento ya lo tenia ( cuando cree mi tabla le indique a ibexpert que me crearo todo lo que decia, mas vale que sobre y no que falte

)
No entendia para que me servia pero ahora con tu comentario empiezo a entender lo llame con un pFIBStoredProc lo ejecuto pero en ese punto me gana la ignorancia despues que hago??
les escribo la ddl de mi tabla para que me den su opinion a ver si no esta ahi el error
Código SQL
[-]
CREATE GENERATOR GEN_TCOLORES_ID;
CREATE TABLE TCOLORES (
ID INTEGER NOT NULL,
DESCRIPCION NOMBRES
);
ALTER TABLE TCOLORES ADD PRIMARY KEY (ID);
SET TERM ^ ;
CREATE TRIGGER TCOLORES_BI FOR TCOLORES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_TCOLORES_ID,1);
END
^
CREATE PROCEDURE SP_GEN_TCOLORES_ID
RETURNS (
ID INTEGER)
AS
BEGIN
EXIT;
END^
SET TERM ; ^