[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