create or alter procedure SP_TESTE_EXEC_BANCO_LOG ( inSQL varchar(30000) not null ) as begin -- Bloco de execucao begin execute statement :inSQL WITH COMMON TRANSACTION WITH CALLER PRIVILEGES AS USER 'sysdba' PASSWORD 'masterkey' ON EXTERNAL DATA SOURCE 'localhost:C:\BANCOS\BASE_LOGS.FDB'; -- Tratamento de excessao when any do begin -- Nao precisa fazer nada, apenas para nao gerar mensagem de esceessao end end -- Final do bloco end; -- Utilizacao create or alter trigger TRG_PRODUTO_TESTE for PRODUTO active before update position 0 as declare variable vs_Comando varchar(2500); begin /* Trigger text */ if (new.DESCPRODUTO is distinct from old.DESCPRODUTO) then begin vs_Comando = 'insert into LOGS_PRODUTO (CODPRODUTO,VALOR_INICIAL,VALOR_FINAL) values ('|| new.CODPRODUTO ||','''|| old.DESCPRODUTO ||''','''|| new.DESCPRODUTO ||''')'; execute procedure SP_TESTE_EXEC_BANCO_LOG(:vs_Comando); end end;