[firebase-br] Trigger em tabelas de sistema

Saulo Tek-System saulo em teksystem.com.br
Ter Maio 31 08:11:45 -03 2011


Oi Pessoal. Bom dia a todos.

Gostaria de saber se é possível criar uma trigger nas tabelas de sistema e
monitoramento do Firebird. 

Eu cheguei a criar uma trigger na tabela de monitoramento (segue abaixo a
DDL), porém a ela não é disparada quando um registro é incluído na tabela.
Testei com os eventos after insert  e before insert. 

Alguém saberia me dizer porque isso está acontecendo?

Desde já agradeço. Abraços a todos,

Saulo 

P.S.: Testei uma trigger similar em uma tabela comum e funcionou...

 

CREATE OR ALTER trigger trg_MONITOR_COMANDOS for MON$STATEMENTS

active after insert position 0

as

  declare variable FLAG integer;

  declare variable CAMINHO_ARQLOG varchar(255);

begin

  select CONFIG_MONITOR.STATUS_CONFIGMON, CONFIG_MONITOR.CAMINHOBD_CONFIGMON

  from CONFIG_MONITOR into :FLAG, :CAMINHO_ARQLOG;

 

  if (:FLAG > 0) then

  begin

       execute statement ('insert into COMANDOS (STAT_ID, STATEMENT_ID,
ATTACHMENT_ID, "TRANSACTION_ID", ESTADO, INICIO, TEXTO_SQL)' ||
'values (:STAT_ID, :STATEMENT_ID, :ATTACHMENT_ID, :"TRANSACTION_ID",
:ESTADO, :INICIO, :TEXTO_SQL)')

       (STAT_ID := new.MON$STAT_ID, STATEMENT_ID := new.MON$STATEMENT_ID,
ATTACHMENT_ID := new.MON$ATTACHMENT_ID,

        ESTADO := new.MON$STATE, INICIO := new.MON$TIMESTAMP, TEXTO_SQL :=
new.MON$SQL_TEXT)

       on external CAMINHO_ARQLOG

       AS USER 'SYSDBA' PASSWORD 'masterkey'

       WITH COMMON TRANSACTION;       

  end

end;

 

 




Mais detalhes sobre a lista de discussão lista