Duplicando codigo com Generator
28/08/2004
0
Ola pessoal !, esta acontecendo o seguinte problema, esta gerando o codigo de 2 (dois) em 2 (dois), assim 2 - 4 - 6 - 8 e etc... da um analisa se criei errado para criar os codigos ..
eu fiz da seguinte forma para gerar o codigo do Cliente, estou usando Interbase. Criei o Generator assim : [u:3ebddd05bf][b:3ebddd05bf]CREATE GENERATOR ´CD_CLIENTE_GEN´; [/b:3ebddd05bf][/u:3ebddd05bf]
Criei uma Trigger assim : [b:3ebddd05bf]CREATE TRIGGER ´GERARCODIGOCLIENTE´ FOR ´CLIENTE´
ACTIVE BEFORE INSERT POSITION 0
As
Begin
New.CD_Cliente = Gen_ID(CD_CLiente_Gen,1);
End
SET TERM ;[/b:3ebddd05bf]
No Datamodule eu configurei na propriedade da QUERY o GENRATORFIELD, configurei da seguinte maneira : Generator => CD_CLIENTE_GEN / Field => CD_CLIENTE / ON POST
Obrigado Pessoal
Estou no MSN : eliel_martins@hotmail.com ou manda email para mim : eliel_martins@hotmail.com
eu fiz da seguinte forma para gerar o codigo do Cliente, estou usando Interbase. Criei o Generator assim : [u:3ebddd05bf][b:3ebddd05bf]CREATE GENERATOR ´CD_CLIENTE_GEN´; [/b:3ebddd05bf][/u:3ebddd05bf]
Criei uma Trigger assim : [b:3ebddd05bf]CREATE TRIGGER ´GERARCODIGOCLIENTE´ FOR ´CLIENTE´
ACTIVE BEFORE INSERT POSITION 0
As
Begin
New.CD_Cliente = Gen_ID(CD_CLiente_Gen,1);
End
SET TERM ;[/b:3ebddd05bf]
No Datamodule eu configurei na propriedade da QUERY o GENRATORFIELD, configurei da seguinte maneira : Generator => CD_CLIENTE_GEN / Field => CD_CLIENTE / ON POST
Obrigado Pessoal
Estou no MSN : eliel_martins@hotmail.com ou manda email para mim : eliel_martins@hotmail.com
Eliel_martins
Curtir tópico
+ 0
Responder
Posts
28/08/2004
Vinicius2k
Colega,
No IBX, fazendo uso da propriedade GeneratorField do DataSet, vc não precisa de Triggers para incrementar os generators... o que está ocorrendo é que a função GEN_ID está sendo chamada duas vezes...
Seu registro recebe um valor quando é postado e o generator é incrementado, quando ele chega ao banco para insert a trigger é disparada e ele recebe um novo valor e o generator é incrementado novamente...
Espero ter ajudado...
T+
No IBX, fazendo uso da propriedade GeneratorField do DataSet, vc não precisa de Triggers para incrementar os generators... o que está ocorrendo é que a função GEN_ID está sendo chamada duas vezes...
Seu registro recebe um valor quando é postado e o generator é incrementado, quando ele chega ao banco para insert a trigger é disparada e ele recebe um novo valor e o generator é incrementado novamente...
Espero ter ajudado...
T+
Responder
28/08/2004
Gandalf.nho
Ou modifique a trigger assim:
ACTIVE BEFORE INSERT POSITION 0
As
Begin
if (new.CD_Cliente is null) then
New.CD_Cliente = Gen_ID(CD_Cliente_Gen,1);
End
SET TERM ;
Isso evita o referido problema.
ACTIVE BEFORE INSERT POSITION 0
As
Begin
if (new.CD_Cliente is null) then
New.CD_Cliente = Gen_ID(CD_Cliente_Gen,1);
End
SET TERM ;
Isso evita o referido problema.
Responder
Clique aqui para fazer login e interagir na Comunidade :)