Controlar Alterações ClientDataSet

Delphi

06/06/2006

Minha pergunta é meio complicada... Estou querendo implementar o controle das alterações e operações do banco no evento BeforeUpdateRecord do DataSetProvider. Consegui criar o log, validar operações de inserção, exclusão e tals... mas meu problema está sendo a operação de Alteração (modify). O caso é que na alteração, eu gostaria de saber quais os campos foram alterados. Se eu comparar, usando o Delta até dá certo, mas dá certo se a alteração não foi deixar algum campo vazio. Tipo, tenho o campo data que estava preenchido e o usuário apaga e manda salvar. No Delta (DeltaDS) apareceriam todos os campos em branco, e eu não teria como saber qual campo foi alterado. Tem alguma forma de eu saber qual campo foi ou não alterado?


Thomaz_prg

Thomaz_prg

Curtidas 0

Respostas

Steve_narancic

Steve_narancic

06/06/2006

Ve se te ajuda em algo:
if ClientDataSet1.Fields[0].OldValue <> ClientDataSet1.Fields[0].NewValue then ShowMessage(´Modificado !´);
[/b]


GOSTEI 0
Thomaz_prg

Thomaz_prg

06/06/2006

Muito obrigado!
O caso é que eu estou tentando separar as regras todas (multicamadas), e no caso, não tenho acesso ao ClientDataSet, apenas aos dados retornados ao DataSetProvider através do evento BeforeUpdateRecord. Sendo assim, não posso trabalhar com o ClientDataSet. Mas de qualquer forma muito obrigado mesmo!

Se alguém souber de algum outro evento que eu possa fazer essa verificação e/ou outra forma de fazê-lo ficaria muito grato.


GOSTEI 0
POSTAR