Olá Alisson,

Não sou o Humberto, mas é o seguinte:

Uma técnica simples é vc colocar o valor default do campo ID como 0 e
Required := False.

Pelo Provider você verifica se o valor é 0 através do DeltaDs

if DeltaDs.FieldByName('ID').NewValue = 0 then
  DeltaDs.FieldByName('ID').NewValue :=
MINHA_ROTINA_QUE_RESGATA_O_ID_NO_BANCO_DE_DADOS

Lembrando que o UpdateRecord acontece para cada dataset, logo se está dentro
de um mestre-detalhe, ele ocorrerá para cada pai e filho simultaneamente ;D

Abraços,
Daniel.


2009/5/13 Alisson <alss...@yahoo.com.br>

>
>
> Humberto, mas como você salva o registro no ClientDataset sem colocar valor
>
> no campo? No caso de 3 camadas, o que você coloca no BeforeUpdateRecord do
> Provider?
>
>
> ----- Original Message -----
> From: "Daniel Sobrinho Laporte" 
> <daniel.lapo...@gmail.com<daniel.laporte%40gmail.com>
> >
> To: <delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>>
> Sent: Wednesday, May 13, 2009 1:07 PM
> Subject: Re: [delphi-br] Como pegar o id autoincremento
>
> Pessoal,
>
> Se estiverem utilizando Mestre-detalhe não tem essa necessidade.
>
> A tabela filha automaticamente receberá o ID da tabela pai.
>
> Caso seja multicamadas deixe que o provider cuide de gerar o ID utilizando
> o
> BeforeUpdateRecord ;D
>
> __________________________________________________
> Faça ligações para outros computadores com o novo Yahoo! Messenger
> http://br.beta.messenger.yahoo.com/
>  
>



-- 
Daniel Sobrinho Laporte
Analista de Sistemas e Desenvolvedor Delphi + Firebird.
Colunista e Editor Técnico ClubeDelphi - DevMedia.


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

Responder a