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 >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    delphi-br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a