Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   No se actualiza un trigger (https://www.clubdelphi.com/foros/showthread.php?t=78998)

tulio 01-06-2012 14:15:28

No se actualiza un trigger
 
Hola Foro

uso firebird 1.5 con windows seven, en una tabla de la base de datos tengo un generador y un trigger

Código SQL [-]
CREATE TRIGGER T_INVERSION FOR DESARROLLO BEFORE INSERT POSITION 0 AS
begin
    NEW.Jid = GEN_ID(Gen_inversionistas_id,1);
end

el problema que tengo es que en en el campo Jid de la tabla en algunos registro me deja el campo en blanco y el generador sigue incrementandose. Alguien me puede decir que puede estar pasando

Saludos y gracias

tulio

MartinS 01-06-2012 14:54:54

Hola tulio: En mi caso si no veo el código del generador y el código de la instrucción que hace el insert no se que puede pasar. ¿ Podrías ponerlo?.

Saludos.

PD. Tal vez alguien pueda informarte de una.-

tulio 01-06-2012 15:00:42

Gracias Martin

el generador es :

Código SQL [-]
/*  Generator GEN_INVERSIONISTAS_ID  */
CREATE GENERATOR GEN_INVERSIONISTAS_ID;
SET GENERATOR GEN_INVERSIONISTAS_ID TO 421
---

Y en el programa

hago

Código Delphi [-]
tabla.insert;
cargo los dbedit con los valores necesarios

y luego hago
Código Delphi [-]
tabla.post
transaccion.commintretaing;
saludos

tulio 01-06-2012 15:08:37

va el generator de nuevo porque lo puse con el tag de delphi

Código SQL [-]
CREATE GENERATOR GEN_INVERSIONISTAS_ID;
SET GENERATOR GEN_INVERSIONISTAS_ID TO 421

gracias

Casimiro Notevi 01-06-2012 15:10:15

Ya lo he arreglado, recuerda, es así:



:)

MartinS 01-06-2012 15:25:41

Proba asi el trigger suponiendo que el valor Jid es el que se debe incrementar:

Código SQL [-]
CREATE TRIGGER T_INVERSION FOR DESARROLLO BEFORE INSERT POSITION 0 AS
begin
       If ((NEW.Jid is null) or (NEW.Jid = 0)) then
       NEW.Jid = GEN_ID(Gen_inversionistas_id,1);
end

Saludos

Edito: Juga con la condicion If porque no entendi bien si queres que se incremente cuando sean valores Null o no, en su caso (New.Jid is not null)

tulio 01-06-2012 15:44:47

Gracias Martin

lo probe y anda ,tengo que probarlo ahora con cargas masivas

saludos

tulio


La franja horaria es GMT +2. Ahora son las 09:33:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi