Captura Campo Moficados no Momento do ApplyUpdates(0)

25/11/2005

0

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

Responder

Posts

26/11/2005

Emerson Nascimento

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.


Responder

26/11/2005

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


Responder

26/11/2005

Userba

[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


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar