Eu tb passo por isso, mas eu uso um componente e resolvi o problema Anderson Carlos Programador Cobol / Net Express; Delphi / Paradox - Firebird - MySql
________________________________ De: Fabiano Moura <mctbra...@gmail.com> Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 20 de Agosto de 2010 15:06:58 Assunto: Re: [delphi-br] Chave Primária - Auto Incremento (URGENTE) Boa tarde! Felipe, eu dei o refresh e não traz o valor! Obrigado, Fabiano Em 20 de agosto de 2010 14:57, felipe govoni <govoni.fel...@gmail.com>escreveu: > eu pego algum campo da tabela faço um refresh e apos um locate pra achar o > registro. > > > > > Em 20 de agosto de 2010 11:39, Fabiano Moura <mctbra...@gmail.com> > escreveu: > > > > > > > Bom dia! > > > > Estou desenvolvimento uma aplicação utilizando Delphi 2007 e o banco de > > dados é Firebird. Tenho uma tabela aonde a chave primária é o ID (chave > > simples) e criei um generator para não ter o perigo de adicionar o mesmo > > código para os demais registros. Criei também um trigger que verifica, se > o > > campo ID for nulo, ele gera o código e atribui ao campo, conforme exemplo > > abaixo: > > > > CREATE GENERATOR GEN_LAB_TABELA_ID; *// cria o generator* > > > > SET TERM ^ ; > > > > CREATE OR ALTER TRIGGER LAB_TABELA_BI FOR LAB_TABELA *//cria o trigger > que > > se o campo código (ID) for nulo, a trigger atribui um código de acordo > com > > o > > generator* > > ACTIVE BEFORE INSERT POSITION 1 > > as > > begin > > if (new.codigo is null) then > > new.codigo = gen_id(gen_lab_tabela_id,1); > > end > > ^ > > > > SET TERM ; ^ > > > > Adicionei os campos da minha tabela no sqlquery e clientdataset e atribui > > a chave ao campo código e fiz as configurações necessárias no provider. > > Testei a aplicação e funciona normalmente, porém, na minha tela de > > cadastro, > > eu tenho um grid aonde adiciono os ítens relacionados a tabela principal. > > No > > meu caso a tabela A é a tabela principal e a tabela B a secundária. O > > relacionamento que criei entre as tabelas é 1:N. O meu problema, é que > após > > salvar os dados na tabela A, o banco cria e atribui corretamente o ID, > > porém, não retorna valor no meu clientdataset da tabela A, para que eu > > possa > > pegar o código gerado e relacionar com a tabela B. > > Como eu faço isso? Preciso de uma solução urgente! Já fiz algumas > > pesquisas na net, mas o que eu encontro é gambiarra, ou o pessoal chamar > o > > generator direto na aplicação e isso não queria, pois estou preparando a > > aplicação para possíveis conexão com banco de dados diferentes, como > > Firebird e Oracle, mas isso é outra questão. > > > > Obrigado, > > > > Fabiano > > > > [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] > > > > ------------------------------------ > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]