Exatamente Ricardo... através do Delta você consegue obter o valor antigo, e
o novo valor dos campos através dos métodos NewValue e OldValue.

Edelson para um pequeno teste você pode criar um projeto em branco colocar
dois clientdataset's, um como tabela de memória e o outro com dados
preenchidos, ao alterar os valores do primeiro e realizar o post, grave o
delta no clientdataset de memória, desta maneira você pode realizar um FOR
olhando os fields e comparando-os. É importante que você entenda bem o
funcionamento de Variants para não ter supresas de como trabalhar com os
OleVariants.

[]s

Daniel

2009/6/2 Ricardo César Cardoso <ricardo_engs...@yahoo.com.br>

>
>
> Até onde lembro o Delta só tem as colunas e dados mudados. Não tem o
> registro todo. Se não me engano a matriz do Delta é algo assim: Field,
> OldValue, NewValue mas não tenho certeza absoluta.
>
> []'s
> Ricardo.
>
> 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS.
>
> 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor
> compreendida.
>
> 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante!
>
> --- Em ter, 2/6/09, Edelson Regis de Lima 
> <edre...@ig.com.br<edregis%40ig.com.br>>
> escreveu:
>
> De: Edelson Regis de Lima <edre...@ig.com.br <edregis%40ig.com.br>>
> Assunto: Re: [delphi-br] Funcionamento interno do ApplyUpdates
> Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>
> Data: Terça-feira, 2 de Junho de 2009, 9:40
>
>
> Entendi...
>
> E eu consigo enxergar as rows os Fields dentro do Data e do Delta?
>
> Ou tenho que fazer algum TypeCast para obter as informações?
>
> Pelo que você falou, eu preciso comparar tudo o que está diferente no Delta
>
> em relação ao Data, trabalhar essas informações e depois persistir no banco
>
> de dados.
>
> Vocês sabem de alguma maneira eficaz de se fazer isso? Tipo, sem correr o
>
> risco de deixar dados para traz?
>
> Obrigado,
>
> Edelson.
>
> 2009/6/1 Daniel Sobrinho Laporte <daniel.laporte@ gmail.com>
>
> >
>
> >
>
> > Edelson o ClientDataSet possui dois estados internos.
>
> >
>
> > ClientDataSet. Data: contém os dados originais
>
> > ClientDataSet. Delta: contém os dados que sofreram alteração
>
> >
>
> > A peristência na verdade é realizada pelo DataSetProvider de acordo com
> seu
>
> > UpdateMode e com as configurações dos ProviderFlags. Tanto o Data quanto
> o
>
> > Delta são OleVariants, desta forma você pode criar um array de variants e
>
> > atribuir o valor, ou utilizar um outro ClientDataSet. Data em tempo de
>
> > execução ok?
>
> >
>
> > []'s
>
> >
>
> > Daniel
>
> >
>
> > 2009/6/1 berdam <berdamzinho@ yahoo.com. br <berdamzinho% 40yahoo.com.
> br>>
>
> >
>
> >
>
> > >
>
> > >
>
> > > o dataset tem tuas propriedades o data e o delta, se n me engano o data
>
> > > possui o registro, já o delta possui todos os registros alterados.
>
> > >
>
> > > Edelson Regis de Lima escreveu:
>
> > >
>
> > > >
>
> > > >
>
> > > > Olá galera!
>
> > > >
>
> > > > Alguém sabe como o ApplyUpdates do TClientDataSet reconhece
>
> > internamente
>
> > > > quais são os registros que foram alterados, e que operação ele
> precisa
>
> > > > executar (se é insert, update, delete...).
>
> > > > Estou perguntando isso porque estou desenvolvendo um componente
> herdado
>
> > > do
>
> > > > TClientDataSet, que terá um ApplyUpdates "modificado" . Esse
>
> > ApplyUpdates
>
> > > > terá que fazer algumas outras coisas antes de persistir os dados.
>
> > > > E se eu conseguir entender como o ApplyUpdates reconhece quais os
>
> > > > registros/campos que precisam ser persistidos, irá facilitar muiiiito
> a
>
> > > > minha vida.
>
> > > > Já ouvi falar que tem a ver com o Delta, mas não manjo muito sobre
>
> > ele...
>
> > > >
>
> > > > Abraços,
>
> > > >
>
> > > > Edelson.
>
> > > >
>
> > > > [As partes desta mensagem que não continham texto foram removidas]
>
> > > >
>
> > > >
>
> > >
>
> > > --
>
> > > ------------ --------- --------- --------- --------- -----
>
> > > Uberdam Cavaletti
>
> > > Formado em Tecnologia da informação - Unoesc - Xxe
>
> > > Pós graduado em Desenvolvimento Java - Unoesc - Xxe
>
> > >
>
> > > Acesse http://www.curricul ar.com.br/ berdam
>
> > > Acesse http://passandovene no.blogspot. 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]
>
> >
>
> >
>
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
>
>
>
>
>
>
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



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