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]