applyupdates(0) para -1 há uma leve diferença que costuma ser tão 
fatídica quanto simples. Se você der Aply 0, Caso o CDS encontre 
algum erro, ele aborta tudo. Não grava nada no banco. Se você der o -
1, Ele grava dando erro ou não resultando em dados inconsistentes e 
faltando.

Uma dica de como usar o ApplyUpdates, é como eu faço, no evento 
AfterPost do CDS, com exceção de relacionamentos M/D, aonde eu dou o 
Apply diretamente no master que ele se incumbe de gravar nos Details:

procedure TDMMat.cdsItensKitAfterPost(DataSet: TDataSet);
begin
  if (DataSet as TClientDataSet).ApplyUpdates(0) <> 0 then
    raise EDataBaseError.Create(Exception(exceptobject).Message);
end;



[]s



Walter Alves Chagas Junior
Belo Horizonte - MG - Brazil
[EMAIL PROTECTED]
http://www.geocities.com/SiliconValley/Bay/1058
MSN: [EMAIL PROTECTED]



--- Em delphi-br@yahoogrupos.com.br, Gustavo André de Freitas 
<[EMAIL PROTECTED]> escreveu
>
> 
> ok, agora funcionou, obrigado. outra dúvida, aprendi a dar 
> applyupdates(0), qual a diferença para o applyupdates(-1) ?
> 
> --- Em delphi-br@yahoogrupos.com.br, "Eduardo Frighetto" 
> <frighetto@> escreveu
> >
> > Voce esta dando clientdataset.ApplyUpdates(-1); ?????
> > Se nao fizer isso, os dados nao sao persistidos.
> > 
> >   ----- Original Message ----- 
> >   From: Gustavo André de Freitas 
> >   To: delphi-br@yahoogrupos.com.br 
> >   Sent: Wednesday, January 10, 2007 6:36 AM
> >   Subject: [delphi-br] Migrando do Paradox para o Firebird 1.5
> > 
> > 
> >   Bom dia a todos!
> > 
> >   Estou migrando do Paradox para o Firebird 1.5 e estou 
encontrando 
> >   algumas dúvidas, gostaria que me ajudassem:
> > 
> >   1- no paradox, quando queria editar um registro, usava o 
seguinte 
> >   código:
> > 
> >   if table.state in [dsinsert,dsedit] then
> >   table.post;
> > 
> >   tentei algo parecido no firebird
> >   if datamodule.clientdataset.State in [dsInsert,dsEdit] then
> >   datamodule.clientdataset.Post;
> > 
> >   não altera o registro.
> > 
> >   2- no paradox, quando queria excluir um registro, usava o 
> seguinte 
> >   código:
> > 
> >   table.delete;
> > 
> >   tentei algo parecido no firebird
> > 
> >   datamodule.clientdataset.delete;
> > 
> >   não funcionou.
> > 
> >   Peço aos amigos que me ajudem nestas dúvidas simples, mas 
> difíceis 
> >   para quem está começando
> >   como eu.
> > 
> >   um abraço a todos!
> > 
> > 
> > 
> >    
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>


Responder a