[firebase-br] Trigger em tabelas de sistema

Eduardo Jedliczka edujed em gmail.com
Ter Maio 31 09:57:00 -03 2011


Não me lembro se isto já foi implementado no Firebird 2.5, ou se o
"bloqueio à triggers, e criação novos campos nas tabelas de sistema"
será uma das "novidades" no FB 3.0.

abraço,

==========================
Eduardo Jedliczka
Apucarana - Pr
==========================




Em 31 de maio de 2011 08:11, Saulo Tek-System <saulo em teksystem.com.br> escreveu:
> 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;
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista