Trigger atualizar campo

Firebird

06/10/2005

Pessoal tenho o campo DT_ATUALIZ_CAD onde é gravado a data em que o registro foi atualizado, para isso queria criar uma trigger que verificasse se o valor de algum campo foi alterado, imaginei algo do tipo

 if (new.NOME <> old.NOME) or (new.RUA <> old.RUA)
 then new.DT_ATUALIZ_CAD = current_date



Só que se eu tiver 50 campos na tabela terei que adiciona-los na trigger, e toda vez que adicionar ou remover um campo da tabela terei que alterar a trigger, não teria uma maneira mais simples?


Steve_narancic

Steve_narancic

Curtidas 0

Respostas

Afarias

Afarias

06/10/2005

|não teria uma maneira mais simples?

infelizmente, Não.

mas, se vc não precisa saber exatamente QUAL o campo foi alterado, então não tem pq fazer essas verificações.


T+


GOSTEI 0
Steve_narancic

Steve_narancic

06/10/2005

O problema é que o simples fato de dar um post na tabela sem ter alterado sequer o valor de algum campo, a trigger é disparada atualizando o campo DT_ATUALIZ_CAD, sendo que nenhum valor foi alterado, por isso que faço esta verificação se os valores são diferentes


GOSTEI 0
Beppe

Beppe

06/10/2005

Hum...no BeforePost, verifique campo a campo(for I := 0 to FieldCount - 1 do) se alguém foi modificado, caso contrário chame Cancel.


GOSTEI 0
POSTAR