[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