Fórum registrar acoes dos usuarios no uso do sistema #336545
21/01/2007
0
Gostaria de criar não sei e é plo trigger ou similar uma forma que registrasse toda açao dos usuarios nas tabelas como ´INCLUSAO,ALTERAÇAO,EXCLUSAO´ de preferencia em qual compo da tabela ele fez a açao.
estou com este problema aqui...
teria como?[/list]
Erivando
Curtir tópico
+ 0Posts
21/01/2007
Aroldo Zanela
Se estiver um SGBD, você pode fazer usando triggers, mas ficará dependente do banco de dados e sua portabilidade ficará comprometida. Uma alternativa é utilizar o manipulador de eventos BeforeAlgumaCoisa dos datasets ou descendentes. Terá uma performance inferior a primeira opção, porém, maior portabilidade.
Gostei + 0
21/01/2007
Erivando
Se estiver um SGBD, você pode fazer usando triggers, mas ficará dependente do banco de dados e sua portabilidade ficará comprometida. Uma alternativa é utilizar o manipulador de eventos BeforeAlgumaCoisa dos datasets ou descendentes. Terá uma performance inferior a primeira opção, porém, maior portabilidade.[/quote:cc331d5c52]
Gostei + 0
22/01/2007
Macario
Uma maneira de implementar um Log de ações é utilizar o evento BeforeUpdateRecord do DataSetProvider.
Na edição 51 da revista ClubeDelphi você encotrará um artigo sobre tema.
Qualquer coisa é so postar novamente.
[]´s 8)
Gostei + 0
22/01/2007
Aroldo Zanela
Eu implementei isso num sistema há alguns anos usando um campo BLOB e armazenando em formato XML para qualquer tabela as ações antes de serem aplicadas.
Exemplo:
<log> <tabela>clientes</tabela> <acao>remoção</acao> <campoA>DadosA</campoA> <campoB>DadosB</campoB> </log>
Neste exemplo, é possível saber qual ERA a informação armazenada em um determinado instante.
Gostei + 0
22/01/2007
Macario
No BeforeUpdateRecord, é disponibilizado o Delta do DataSet onde temos acesso as variaveis NewValue e OldValue, com isso podemos manter o historico do registro.
Outro detalhe é que é possivel implementar uma rotina que grava apenas os campos efetivamente alterados.
[]´s
Gostei + 0
22/01/2007
Erivando
Obrigado Macario, eu tenho a revista fui verificar e achei bacana, irei adaptar a minha aplicação!
Gostei + 0
22/01/2007
Macario
Qualquer duvida post aqui novamente, eu fiz uso das dicas do artigo.
[]´s
Gostei + 0
24/01/2007
Francisco.riva1
DataSetProvider funciona legal ... agora como vcs resolveram quando existem relacionamentos mestre x detalhe (onde temos somente o log da tabela mestre) !?
Abraco.
Gostei + 0
24/01/2007
Macario
É so usar o evento de cada DSP.
8)
Gostei + 0
25/01/2007
Francisco.riva1
O q estou dizendo e´ q quando ha´ um relacionamento mestre x detalhe, so´ existe um DSP para as duas tabelas.
Para a tabela mestre, tudo bem, funciona normalmente ... mas para a tabela detalhe (que nao tem um DSP) nao ha´ essa funcionalidade.
Em seus projetos vc nao tem esse tipo de relacionamento, se tiver faca o teste para ver, vc nunca tera´ a informacao das alteracoes da tabela Detalhe por nao ter um DSP pra ela.
Ainda nao sei como criar esse mesmo recurso nesse caso, vc tem ideia de como fazer (ou seja, fazer o mesmo controle que faz no DSP so´ q no CDS) ?
Obrigado.
Abracos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)