[firebase-br] inserir dados em tabela automaticamente

Ezequiel Pianegonda epianegonda em gmail.com
Qui Out 18 16:51:31 -03 2007


deixa eu ver se entendi então...

para cada tabela, são criadas 3 triggers, uma para cada operação
(insert/update/delete);
uma das triggers insere um registro na tabela de operações e n (numero de
campos da tabela que sofreu o insert||update||delete) na tabela de
registros?

Ezequiel




Em 18/10/07, Jeferson Oliveira <jefersonfoliveira em gmail.com> escreveu:
>
> Paulo Casagrande wrote:
> > 1) A principio eu pensei que você gravava
> > cada campo com sendo um registro da tabela de log!
> > Tipo:
> > ( USUARIO, DATA_HORA, TABELA, CAMPO, OPERACAO, ANTERIOR, ALTERADO )
>
> Não. Para cada operação da tabela haverá um registro de operação (ID,
> USUARIO, TABELA, DATA_HORA, OPERACAO)
>
> E para cada campo haverá um registro: (OPERACAO [FK para ID da tabela de
> operacao], CAMPO, ANTERIOR, ALTERADO, ANTERIOR_BLOB, ALTERADO_BLOB)
>
>
> > 2) Em procedimentos que são automatizados,
> > você registra o nome do usuário ou registra que foi o
> > sistema que gerou a alteração ?
>
> Registro o usuário logado no sistema, o que me indica automaticamente
> que foi o sistema, caso contrário o usuário do banco. Mas essa parte de
> registrar o usuário precisa ser melhorada, pois não utilizo roles, com
> isso as operações feitas pelo banco ficam registradas, genericamente,
> como SYSDBA. Preciso melhorar isso, provavelmente utilizando roles, mas
> nem tenho idéia de quando tirarei um tempo para resolver isso.
> Se eu conseguir migrar para o Firebird 2 ou superior algum dia, pretendo
>   utilizar contextos transacionais para identificar o usuário do
> sistema, ao invés de utilizar UDFs, como faço atualmente.
>
>
> > Ex: Um procedimento de limpeza de registros antigos.
>
> Ah! Você acabou de tocar em um ponto importantíssimo que não comentei
> com o Forrest. Há situações em que não é desejado que seja registrado o
> log, como por exemplo a limpeza de registros, ou alguma operação que
> remove temporariamente alguns registros, etc.. Para esse controle há uam
> tabela de configurações que indica (S ou N) se a gravação de log está
> ativada ou não. E em toda trigger (vale lembrar que cada tabela tem 3
> triggers de log After{Insert, Update, Delete]) é verificado se a
> gravação está ativada, e caso esteja desativada sairá do procedimento.
>
>
> Abraço!
> Jeferson Oliveira
>
>
> Enviado pelo Mozilla Thunderbird
> http://br.mozdev.org/thunderbird
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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