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]