Problema na Trigger do FireBird

Firebird

19/09/2007

Criei uma trigger no FireBird para que depois do Update de uma tabela ela grave em outra quais os campos foram modificados, e quais eram os valores anteriores a modificação.
Só que não estou conseguindo atribuir valores as variaveis que criei.

O código que criei foi o seguinte:
CREATE TRIGGER ESCOLA_AUDITA
ACTIVE AFTER UPDATE POSITION 0
AS
  declare variable antigo varchar(100);
  declare variable novo varchar(100);
  declare variable campo varchar(100);

begin

 if (new.bairro != old.bairro) then
  begin

    antigo = :antigo || old.bairro || ´|´;

    novo =  :novo || new.bairro || ´|´;

    campo = :campo || ´bairro´ || ´|´;
 end

      insert into audita (USUARIO,COD_AREA,CAMPOS,ANTES,DEPOIS,TABELA,ACAO)
             values(new.cod_usu,new.codigo,:campo,old.bairro,new.bairro,´ESCOLA´,´U´);

end


Se alguém poder me ajudar agradeço muito, já não sei mais o que fazer.


Calel

Calel

Curtidas 0

Respostas

Sremulador

Sremulador

19/09/2007

Amigo, para efeito de auditoria, você pode gravar o velho ´old´ e considerar o novo a que ficou na tabela principal, quanto ao seu código esta tudo ok...


GOSTEI 0
Calel

Calel

19/09/2007

Amigo, para efeito de auditoria, você pode gravar o velho ´old´ e considerar o novo a que ficou na tabela principal, quanto ao seu código esta tudo ok...


O estranho eh que os valores das variaveis não estão sendo inseridos, por isso pensei que havia algum erro na atribuição dos valores.


GOSTEI 0
Calel

Calel

19/09/2007

O problema estava no Windows, tive outros problemas, formatei o PC e o código funcionou. ¬¬


GOSTEI 0
POSTAR