econz icon

Firebird - External Data Source

econz | PRO | 02/03/17 02:49:33 PM UTC | 0 ⭐ | 781 👁️ | Never ⏰ | []
SQL |

1.08 KB

|

None

|

0 👍

/

0 👎

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;

Comments