Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NathaN_XLR

Criando Triggers Logs de UPDATE e DELETE em Firebird

Recommended Posts

Pessoal, como faço para criar uma trigger para UPDATE e DELETE na minha tabela de PRODUTO informando tudo que foi editado e deletado na minha tabela de LOG.

 

fiz uma trigger de INSERT e está informando direitinho na minha tabela de LOG

 

SET TERM ^
CREATE TRIGGER TRIG_PRODUTO_INSERT FOR PRODUTO
ACTIVE AFTER INSERT
AS

DECLARE VARIABLE CODIGOPRODUTO INTEGER;
DECLARE VARIABLE DESCRICAO VARCHAR(50);
DECLARE VARIABLE UNIDADE VARCHAR(10);
DECLARE VARIABLE CODIGOCATEGORIA INTEGER;
DECLARE VARIABLE VALORUNIT DECIMAL(10,2);
DECLARE VARIABLE OPERACAO VARCHAR(40) = 'INSERT';
DECLARE VARIABLE USUARIOLOGADO VARCHAR(40);
DECLARE VARIABLE DATAOCORRENCIA VARCHAR(30);

BEGIN

CODIGOPRODUTO = (SELECT MAX(CODIGO_PRODUTO) FROM PRODUTO);
DESCRICAO = (SELECT DESCRICAO FROM PRODUTO WHERE CODIGO_PRODUTO = (SELECT MAX(CODIGO_PRODUTO) FROM PRODUTO));
UNIDADE = (SELECT UNIDADE FROM PRODUTO WHERE CODIGO_PRODUTO = (SELECT MAX(CODIGO_PRODUTO) FROM PRODUTO));
CODIGOCATEGORIA = (SELECT CODIGO_CATEGORIA FROM PRODUTO WHERE CODIGO_PRODUTO = (SELECT MAX(CODIGO_PRODUTO) FROM PRODUTO));
VALORUNIT = (SELECT VALOR_UNIT FROM PRODUTO WHERE CODIGO_PRODUTO = (SELECT MAX(CODIGO_PRODUTO) FROM PRODUTO));
USUARIOLOGADO = (SELECT MON$USER FROM MON$ATTACHMENTS);
DATAOCORRENCIA = (SELECT CURRENT_DATE FROM PRODUTO);

INSERT INTO OCORRENCIAS VALUES (:CODIGOPRODUTO, :DESCRICAO, :UNIDADE, :CODIGOCATEGORIA, :VALORUNIT, :OPERACAO, :USUARIOLOGADO, :DATAOCORRENCIA);

END^

fiz praticamente a mesma coisa para as trigges de UPDATE e DELETE, só que está sempre pegando o ultimo registro

 

como faço para sempre pegar o registro que estou dando um UPDATE ou DELETE ???

 

Obrigado !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.firebirdsql.org/refdocs/langrefupd15-create-trigger.html

 

http://www.firebirdsql.org/refdocs/langrefupd21-ddl-trigger.html

 

Nao conheço FB mas creio que uma trigger bastaria, seria de

Insert or delete or update

 

O uso das variaveis de trigger NEW e OLD descartaria o select, pois a trigger já tem o conteúdo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.