Numa olhada rapida, o que acontece é que quando vc chama a procedure ela ja 
incrementa o generator, depois o trigger faz isso de novo na hora do insert.

Chame o generator só uma vez, ou na procedure coloque o incremento 0.

[]s


>From: "vagao_batera" <[EMAIL PROTECTED]>
>Reply-To: delphi-br@yahoogrupos.com.br
>To: delphi-br@yahoogrupos.com.br
>Subject: [delphi-br] generator gerando somente numeros impares e as vezes 
>só pares
>Date: Tue, 31 Jul 2007 21:53:02 -0000
>
>vc poderia me explicar melhor Rodrigo, qdo vc quis dizer:
>provavelmente o incremento do gen_id esta em 2 ao inves de 1...
>
>dai fica 1 3 5 7
>
>estou começando agora, ficarei grato pela ajuda....
>
>CREATE GENERATOR GEN_USUARIO_ID;
>
>SET TERM ^ ;
>
>CREATE TRIGGER USUARIO_BI FOR USUARIO
>ACTIVE BEFORE INSERT POSITION 0
>AS
>BEGIN
>   IF (NEW.PK_USUARIO IS NULL) THEN
>     NEW.PK_USUARIO = GEN_ID(GEN_USUARIO_ID,1);
>END
>^
>SET TERM ; ^
>
>uso essa procedure para retornar o valor pra mim no meu form,
>através de uma função
>
>SET TERM ^ ;
>CREATE PROCEDURE SP_NEW_ID (
>     PUSUARIO VARCHAR(30) CHARACTER SET NONE)
>RETURNS (
>     POUT_ID INTEGER)
>AS
>begin
>if (:pUSUARIO = 'usuario') then
>pOUT_ID = GEN_ID(GEN_USUARIO_ID,1);
>SUSPEND;
>end^
>SET TERM ; ^
>
>
>agradeço a atenção....
>abraços...
>
>

_________________________________________________________________
Seja um dos primeiros a testar o novo Windows Live Mail Beta- grátis. Acesse 
http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d

Responder a