O q vc queria é que o SGBD fosse inteligente a ponto de notificar a aplicação 
cliente e o dataset do Delphi pudesse fazer isso automático pra vc. E até onde 
me consta, nenhum SGBD no mercado tem um esquema de callback que pudesse ser 
implementado em camadas de acesso baseadas no dataset do Delphi e q permitisse 
aos datasets do Delphi terem essa inteligência. Ou seja, não existe receita 
mágica, pulo do gato ou (ARGH!) gambiarra! Ou usa o método Refresh() do DataSet 
ou abre e fecha a consulta.

 

Sds.

 


To: delphi-br@yahoogrupos.com.br
From: govoni.fel...@gmail.com
Date: Thu, 30 Apr 2009 13:05:36 -0300
Subject: Re: [delphi-br] firebird - acessar campo auto incremento







desculpe RUBEM

na verdade nao é erro, e o data module noa tem nenhum codigo, como
o firebird nao tem o auto incremento, logo apos o post nao esta acessivel o
valor do id somente depois do refresh. eu queria saber se tem uma maneira
mais correta pra resover isso ou se vou ter q faze uma gambiarra.

2009/4/30 Rubem Nascimento da Rocha <djpardalro...@hotmail.com>

>
>
>
> Só isso é pouco e vago pra analisar o problema! Precisaria olhar o código
> desse suposto data module de nome DMGeral. E ainda não sei qual a camada de
> acesso a dados vc está usando (BDE, ADO/dbGo, dbExpress, etc.). Mas teria
> que olhar o código do data module pra saber o q vc fez errado!
>
> Sds.
>
> P.S.: Meu nome é no singular!
>
>
>
> To: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>
> From: govoni.fel...@gmail.com <govoni.felipe%40gmail.com>
> Date: Thu, 30 Apr 2009 12:53:40 -0300
> Subject: Re: [delphi-br] firebird - acessar campo auto incremento
>
> desculpe rubens acho q nao me expressei bem:
>
> eu criei o generetor e o trigger, mas minha duvida e no delphi.
>
> tenho um:
>
> DMGeral.qryCompras.Append;
> DMGeral.qryCompras.Post;
>
> e em outra procedure, faço isso
>
> dmgeral.qryProdutos.filedbyname('id_compra').value :=
> dmgeral.qryCompras.filedbyname('id_compra').value;
>
> porem ele retorna vazio, se eu der um refresh ele retorna para o primeiro
> registro
> da query. preciso atualizar a query para pegar o id_compra.
>
> 2009/4/30 Rubem Nascimento da Rocha 
> <djpardalro...@hotmail.com<djpardalrocha%40hotmail.com>
> >
>
> >
> >
> >
> > Até onde me consta, não existe a figura de campo auto-incremento no
> > FireBird. Esse comportamento é simulado por meio de GENERATOR's e
> TRIGGER's.
> >
> > Verifique o código da trigger que é executada no evento BEFORE INSERT da
> > tabela em questão. Nesse código, com toda a certeza, está sendo usada a
> > função GEN_ID() para incrementar o valor de um generator, e o valor
> > resultante é atribuído ao campo chave da tabela. Para saber qual o último
> > valor gerado pelo GENERATOR usado na trigger, use a seguinte sintaxe
> SELECT
> > SQL:
> >
> > SELECT GEN_ID(<nome_generator>, 0) FROM RDB$DATABASE
> >
> > Boa sorte.
> > Sds.
> >
> > To: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br><delphi-br%
> 40yahoogrupos.com.br>
> > From: govoni.fel...@gmail.com <govoni.felipe%40gmail.com><govoni.felipe%
> 40gmail.com>
> > Date: Thu, 30 Apr 2009 12:41:47 -0300
> > Subject: [delphi-br] firebird - acessar campo auto incremento
> >
> >
> > boa tarde
> >
> > tenho uma procedure onde adiciono e salvo um registro mas preciso acessar
> > o valor do campo auto incremento, como faço isso? pois se dou um refresh
> > ele volta para o primeiro registro.
> >
> > --
> > Felipe Govoni
> > ---------------------
> > GOVONI Sistemas
> > Fone 8472-8718
> > www.govoni.com.br
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > __________________________________________________________
> > Messenger 2009: Instale já!
> > http://download.live.com
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> --
> Felipe Govoni
> ---------------------
> GOVONI Sistemas
> Fone 8472-8718
> www.govoni.com.br
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> __________________________________________________________
> Faça já uma busa e ganhe um wink do Messenger. Está esperando o que? É
> grátis!
> http://www.ibud.com.br/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

-- 
Felipe Govoni
---------------------
GOVONI Sistemas
Fone 8472-8718
www.govoni.com.br

[As partes desta mensagem que não continham texto foram removidas]









_________________________________________________________________
Messenger 2009: Instale já!
http://download.live.com

[As partes desta mensagem que não continham texto foram removidas]

Responder a