[firebase-br] Utilizando trigger para Auditoria nas tabelas (campos )

Edvaldo (bol) evgomes em bol.com.br
Ter Abr 4 22:51:16 -03 2006


Luiz,

O único problema de você fazer isso é que terá que criar uma trigger para 
cada tabela que estiver fazendo a auditoria.

Exclusão:
Eu fiz uma rotina utilizando delphi que antes de excluir eu armazeno numa 
tabela a parte o registro=(codigo na tabela auditada),usuário, datahora, 
host, situacao(I-inclusão E-Exclusão A-Alteração) e todos os dados do 
registro excluido, os dados eu coloco num campo do tipo BLOB. percorro todos 
Edits e pego seus valores o nome de cada campo assim:
NOME=JOAO PEREIRA
CPF=002.908.098-99
DATANASCIMENTO=12/05/76

Alteração:
No delphi tem uma opção que você verifica o valor anterior e o valor atual 
de um campo, então uso essa opção quando tem alguma alteração na tabela no 
evento BeforePost, percorro todos os campos verificando o valor anterior e o 
atual, se for diferente armazeno na minha tabela de auditoria o valor 
anterior, pois o valor atual eu tenho na tela.

Exemplo:
Alterei o nome do cliente, no meu campo Blob fica o seguinte:
NOME=JOSE DA SILVA.

Este é o valor anterior, pois o atual eu tenho na tela.

Você ainda deve fazer uma busca pelo codigo do cliente = registro da tabela 
de auditoria para saber quais as alterações tiveram para este registro.

Inclusão:
Você não grava somente os dados do campo blob, o resto você grava tudo

Servico = I
Usuario = xxxx
Host = 127.0.0.1
registro=1203


Não sei se fui muito claro, mas esquece esse negócio de triggers, você vai 
ficar doido mexendo com isso. Faça essa rotina, fica muito bom e não custa 
nada ao sistema em termos de performance.

Edvaldo



----- Original Message ----- 
From: "Luis Wagner dos Santos" <luis.wagner em gmail.com>
To: <lista em firebase.com.br>
Sent: Tuesday, April 04, 2006 3:44 PM
Subject: [firebase-br] Utilizando trigger para Auditoria nas tabelas 
(campos )




Pessoal

Nas minhas tabelas do sistema tenho vários campos de auditoria. Exemplo: 
usuário que inseriu, alterou, excluiu, inativou, máquina utilizada, data, 
hora e etc.
Estes campos serão preenchidos de acordo com a utilização do sistema. Por 
exemplo: O usuário grava um registro, altera, inativa ou exlcui o sistema 
dispara um trigger para alimentar esses campos na mesma tabela usada na 
transação

Gostaria de saber se consigo fazer isso através do gatilhos "triggers".  ? 
Se conseguir alguém tem um pequeno exemplo para ajudar.

Mjuito obrigado
_____________________________
Luis Wagner dos Santos
Mobile: 55-19-9131-7781
e-mail: luis_wagner_santos em hotmail.com
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista