Problema na Trigger do FireBird
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:
Se alguém poder me ajudar agradeço muito, já não sei mais o que fazer.
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
Curtidas 0
Respostas
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
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
19/09/2007
O problema estava no Windows, tive outros problemas, formatei o PC e o código funcionou. ¬¬
GOSTEI 0