Array
(
)

Duplicando codigo com Generator

Eliel_martins
   - 28 ago 2004

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]CREATE GENERATOR ´CD_CLIENTE_GEN´; [/u:3ebddd05bf]

Criei uma Trigger assim : CREATE TRIGGER ´GERARCODIGOCLIENTE´ FOR ´CLIENTE´
ACTIVE BEFORE INSERT POSITION 0
As
Begin
New.CD_Cliente = Gen_ID(CD_CLiente_Gen,1);
End
SET TERM ;

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


Vinicius2k
   - 28 ago 2004

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+


Gandalf.nho
   - 28 ago 2004

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.