Valor Anterior do campo para montar LOG

Tem alguma forma no SC5 de pegar o valor q estava antes no campo para montar o log com o valor anterior e o atual, igual tem quando se faz direto no banco de dados, aonde temos OLD e NEW?

Sim!

Você precisa colocar o código do Log no “OnBeforeInsert”.
Primeiramente você dá um select no banco e verifica qual valor está gravado lá para este campo com a chave atual e insere o valor na tabela de LOG com este valor.
Em seguida você insere no LOG o valor que está no campo, que será o valor que vai substituir o anterior.

Entendeu?!

Aí você poderia perguntar: Mas e se ocorrer algum erro já que o o código estará no “onBeforeInsert”?

Já testei no meu sistema e em nenhum momento ele inseriu no log caso acontecesse algum erro de execução.

Bom, é isso!

Para isso, eu particularmente uso TRIGGERS direto no banco (passando valores OLD e NEW) para uma nova tabela de LOG.