[firebase-br] Obter valor do GENERATOR ... Outro detalhe !

Sandro oleber.itajai em gmail.com
Sex Maio 30 10:03:30 -03 2008


Como um outro amigo falou em  outro assunto.. vc pode fazer assim na hora do
insert,  se vc estiver usando FB 2.X

IBSql.Sql.Text := 'insert into Tabela (Codigo) values
((gen_id(generator,1) ) returning Codigo';
IBSql.ExecQuery;
Codigo := IBSql.FieldByName('Codigo').AsInteger;

Dessa forma eu recupero o Codigo do novo campo que foi inserido sem
usar  stored procedures ou consultas adicionais.

Ou primeiro pega o valor do generator e depois manda incluir , se vc estiver
usando FB 1.X

IBSql.Sql.Text := select (gen_id(generator,1)  as CODIGO from RDB$DATABASE
';
IBSql.ExecQuery;
Codigo := IBSql.FieldByName('Codigo').AsInteger;

Sabendo o codigo manda incluir esse codigo.

Creio que naum tenha outro modo.

Grato






----- Original Message ----- 
From: "alexandre pedroso" <alexgpedroso em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, May 30, 2008 9:47 AM
Subject: Re: [firebase-br] Obter valor do GENERATOR ... Outro detalhe !


antes ou dpois do insert?



2008/5/30 Cleidson <cleidson em zmed.com.br>:

> Tudo bem que posso usar o generator desse jeito, mas o que preciso
> realmente é saber no momento do insert na aplicacao o valor que foi dado
> ao campo chave.
>
> Mas obrigado pela dica !
>
> alexandre pedroso escreveu:
>  > Digamos que tu criou assim
> > *CREATE GENERATOR GEN_SP_CLIENTES_ID;*
> >
> > tu pode criar automaticamente o valor atraves de trigger ..... no insert
> da
> > tabela tu noa coloca o campo referido ......
> >
> > CREATE OR ALTER TRIGGER SP_CLIENTES_BI FOR SP_CLIENTES
> > ACTIVE BEFORE INSERT POSITION 0
> > as
> > begin
> >   if (new.cli_codigo is null) then
> >     new.cli_codigo = gen_id(gen_sp_clientes_id,1);
> > end
> >
> > Ou tu pode tambem chamar uma SP
> >
> > CREATE OR ALTER PROCEDURE GET_ID_CLIENTES
> > returns (
> >     id integer)
> > as
> > BEGIN
> >   ID = Gen_Id ( gen_sp_clientes_id, 1 );
> >   Suspend ;
> > END
> >
> > 2008/5/29 Cleidson <cleidson em zmed.com.br>:
> >
> >> Existe uma funcao do IB_Query chamada GeneratorValue mas acho que ela
me
> >> retorna o valor atual do generator e nao necessariamente o valor que
foi
> >> gerado para o meu registro.
> >>
> >>
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >>
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista