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