Ver Mensaje Individual
  #4  
Antiguo 14-06-2004
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Reputación: 23
jzginez Va por buen camino
hola gracias por las sugerencias

Código PHP:
Para que vuelva a leer el valor del campoy se dé cuenta del cambiotendrá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 persistentea 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 Triggersinó 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 /* VARCHAR(30) */
);


ALTER TABLE TCOLORES ADD PRIMARY KEY (ID);


SET TERM ^ ;

/* Trigger: TCOLORES_BI */
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 ; ^
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita