Fórum .OldValue x .NewValue #211420
03/02/2004
0
Estou desenvolvendo um programa com datasnap e, através do evento ´BeforeUpdateRecord´ do DataSetProvider, quero montar um arquivo de log.
Eu não sei como identificar quando um campo foi alterado, pois se tentar:
if DeltaDs.FieldByName(campos[i]).OldValue <> DeltaDs.FieldByName(campos[i]).NewValue
Não adianta, pois se o registro não foi alterado, o valor é zero e se eu limpei também é zero.
Como posso ter certeza que o valor do campo foi realmente alterado?
Aproveitando, para que serve o .CurValue?
Obrigado. :roll:
Eu não sei como identificar quando um campo foi alterado, pois se tentar:
if DeltaDs.FieldByName(campos[i]).OldValue <> DeltaDs.FieldByName(campos[i]).NewValue
Não adianta, pois se o registro não foi alterado, o valor é zero e se eu limpei também é zero.
Como posso ter certeza que o valor do campo foi realmente alterado?
Aproveitando, para que serve o .CurValue?
Obrigado. :roll:
Ronaldo
Curtir tópico
+ 0
Responder
Posts
05/02/2004
Ronaldo
A quem interessar:
Uma forma de saber se o campo foi alterado, utilizando o .newvalue é
testando seu valor com a função ´VarIsClear´.
Bastaria apenas fazer
if (not VarIsClear(DeltaDs.Fields[i].NewValue) then
writeln(F, (DeltaDs.Fields[i].FieldName + ´:´ + (DeltaDs.Fields[i].Oldvalue + ´ para ´ + (DeltaDs.Fields[i].NewValue );
O VarIsClear é diferente de VarIsNull. O primeiro diz que a variant nunca recebeu um valor, enquanto a segunda diz que a variável já recebeu um valor mas no momento é null.
:wink:
Uma forma de saber se o campo foi alterado, utilizando o .newvalue é
testando seu valor com a função ´VarIsClear´.
Bastaria apenas fazer
if (not VarIsClear(DeltaDs.Fields[i].NewValue) then
writeln(F, (DeltaDs.Fields[i].FieldName + ´:´ + (DeltaDs.Fields[i].Oldvalue + ´ para ´ + (DeltaDs.Fields[i].NewValue );
O VarIsClear é diferente de VarIsNull. O primeiro diz que a variant nunca recebeu um valor, enquanto a segunda diz que a variável já recebeu um valor mas no momento é null.
:wink:
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)