Re: [firebase-br] Usuário do sistema x Usuários do Banco

Edvaldo (BOL) evgomes em bol.com.br
Seg Fev 6 15:29:37 -03 2006


A respeito deste assunto, eu tenho uma rotina que controla tudo e em uma só 
tabela.

Tenho uma tabela AUDITORIATABELA com os campos:

 TABELA VARCHAR(30), REGISTRO INTEGER , DATAHORA DATE, USUARIO VARCHAR(20), 
SERVICO CHAR(1), DADOS BLOB OU SUB_TYPE SIZE 80, HOSTNAME VARCHAR(30)

A rotina funciona da seguinte forma:

Inclusão:

Tabela : CLIENTE
Registro: Código da chave primária ou alguma identificação única do seu 
registro.
Data Hora: Data e hora da inclusão do registro.
Usuário: Usuário que está incluindo o registro.
Serviço: I - Inclusão
Dados: Não é necessário colocar nada, pois se eu estou incluindo para que 
ter valores na tabela de clientes e na tabela de LOG.

Alteração:

Tabela: CLIENTE
Registro: Código do registro que esta sendo alterado
Data Hora: Data hora da alteracao do registro
Usuário: Usuário que está alterando
Serviço: A - Alteração
Dados: Faço um for nos campos do meu formulário verificando o valor do 
registro anterior e do atual e gravo nesta tabela somente os campos que 
foram alterados.
Exemplo: Se antes o valor do campo NOME = JOAO e foi alterado para NOME = 
PEDRO. Armazeno no campo DADOS = NOME = JOAO. Na minha tela atual estará 
PEDRO e o que tinha anteriormente JOAO.


Exclusão:
Tabela: CLIENTE
Registro: Código do registro que esta sendo excluído
Data Hora: Data hora da exclusão do registro
Usuário: Usuário que está excluindo.
Serviço: E - Exclusão
Dados: Agora sim eu coloco todas as informações referente a exclusão

NOME= HÉLIO DA SILVA
CPF=011.234.323-43
RG=5.332.465-1
e demais campos da tabela de cliente.


Atualmente utilizo CachedUpdate, isto me possibilita saber o valor do campo 
anterior e atual antes de salvar o mesmo. Mas creio que há muitas outras 
maneira de se compara o que está alterando para armazenar somente o que está 
sendo alterado, isto dispensa e muito a utilização de espaço em disco.

EDVALDO. 





Mais detalhes sobre a lista de discussão lista