Veja no meu artigo na ActiveDelphi desde a edicao 74 ou veja no exemplo do 
artigo a função RetornaID tanto no servidor de aplicação quanto no Client, 
creio que ira resolver seu problema de chave primaria com qq banco de dados sem 
depender de generators ou coisa parecida, com total segurança e escalabilidade.

 

http://cc.embarcadero.com/author/795118

 

abs

 

Bruno

 

From: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] On 
Behalf Of Fabiano Moura
Sent: sexta-feira, 20 de agosto de 2010 15:07
To: delphi-br@yahoogrupos.com.br
Subject: 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 
<mailto:govoni.felipe%40gmail.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 
> <mailto:mctbrasil%40gmail.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]



 

Click here 
<https://www.mailcontroller.altohiway.com/sr/WAUyLhcC9vXTndxI!oX7UnlPSUZHzmrIDs76qmhpm!PK0rd3d26PqZAbsd8r4JqabEuNVWKni0edye7!a4hOmw==>
  to report this email as spam.

This message has been scanned for viruses by MailController 
<http://www.MailController.altohiway.com/> .



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

Responder a