Captura Campo Moficados no Momento do ApplyUpdates(0)

Delphi

25/11/2005

Olá a todos!

Preciso gravar em uma tabela de logs de segurança (em um campo memo) o conteúdo anterior e atual dos campos de um registro que sofreram alterações.

Ex:

o usuario X editou o registro 10 e o modicou da seguinte forma:

campo -> nome (antes) -> mario --- (depois) -> maria
campo -> endereco -> não foi alterado pelo usuario
campo -> bairro (antes) -> centro --- (depois) -> central

No caso acima preciso gravar em um memo desta forma:

nome (de) mario (para) maria
bairro (de) centro (para) central

Vocês pode me dar uma idéia de como capturar somente os campos de um determinado registro que sofreram modificação no momento de um ApplyUpdates(0)?


Userba

Userba

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

25/11/2005

se você quer fazer isso pelo delphi, tente comparar
ClientDataSet.FieldByName(´Campo´).OldValue e
ClientDataSet.FieldByName(´Campo´).NewValue

ou

ClientDataSetCampo.OldValue e
ClientDataSetCampo.NewValue

se você estiver usando um SGBD isso pode ser feito por meio de triggers.


GOSTEI 0
Bruno Belchior

Bruno Belchior

25/11/2005

A questão do Old e New values deixa a desejar pois só funcionaria com o Registro onde o ResultSet está posicionado... uma opção seria ler o delta do ClientDataSet...


GOSTEI 0
Userba

Userba

25/11/2005

[quote:2cad58fdd6=´Bruno Belchior´]A questão do Old e New values deixa a desejar pois só funcionaria com o Registro onde o ResultSet está posicionado... uma opção seria ler o delta do ClientDataSet...[/quote:2cad58fdd6]

Olá Bruno!

Seria abusar...
Pedir para voce disponibilizar algumas linhas de como ler o Delta do ClientDataSet?
Ou me indicar algum Link/Literatura onde eu possa obter um exemplo?
Aproveito para lhe questionar...
O Delta irá me retornar os Campos e os respectivos Valores Antigos e Atuais?

Obrigado.
Luciano-User-BA


GOSTEI 0
POSTAR