Então Sebastian, a idéia é a seguinte: No Delphi eu controlo as alterações de algumas tabelas críticas para manter um log do tipo Usuário C Alterou CampoX de A para B Isso acontece para o caso do chefe querer saber qual usuário fez caca, rsrsrs, ou num caso de alteração equivocada mesmo. Num componente chamado ZQuery eu tenho as propriedades NewValue e OldValue, onde consigo montar uma rotina pra guardar essas alterações Mas isso acaba sendo trabalhoso pelo fato de as tabelas poderem ser alteradas em varias janelas ou mesmo sem intervenção direta do usuário Se eu colocar isso numa trigger, terei uma controle mais preciso, independente do front-end, já que eu também vou usar PHP pra acessar esse banco.
Espero que tenha entendido a necessidade. A grosso modo seria uma coisa bem simples, monitorar dadas tabelas no AfterUpdate pra saber quais campos foram mudados e gravar numa outra tabela, só isso. Mas quero automatizar de tal forma que não precise indicar campo a campo e sim por referencia tipo FIELDS[i].NewValue num FOR Marcelo Silva ------------------------------------------ Desenvolvedor Delphi, PHP Tel.: (11) 2962-7390 Cel.: (11) 5250-1407 - Tim Cel.: (11) 9693-4251 - Vivo From: Sebastian Webber Sent: Wednesday, January 09, 2013 10:49 AM To: Comunidade PostgreSQL Brasileira Subject: Re: [pgbr-geral] Trigger de alterações Você não consegue ver os old/new values de outros registros além do acionado pela trigger. Supondo que você realmente precise dessa informação talvez você pudesse separar o processo em duas partes, aonde a trigger apenas grave o valor antigo e novo e um segundo processo rode e analise os dados que for necessário. Se você comentar qual é sua idéia, seria possível dar mais sugestões. Sebastian Webber http://swebber.me -------------------------------------------------------------------------------- From: [email protected] To: [email protected] Date: Mon, 7 Jan 2013 17:46:43 -0200 Subject: [pgbr-geral] Trigger de alterações Senhores desculpe abusar da bondade de vocês, mas ainda manjo pouco de triggers no Postgres. Tenho a seguinte necessidade: TabelaA, quando alterada grava as diferenças na TabelaB Por exemplo a grosso modo no delphi eu faço for i=0 to FieldsCount-1 do begin if (Campo[i].NewValue <> Campo[i].OldValue) then begin Insert na TabelaB end end; Então a dúvida: Como contar os campos de uma tabela verificando o Old e New Values (de cada campo) pra dar um insert em outra tabela ? Seria como gravar um log de eventos. Mais uma vez muito obrigado pela atenção Marcelo Silva ------------------------------------------------------------- Desenvolvedor: Delphi, PHP, ASP Cel: (11) 95052-1407 Tim Cel: (11) 99693-4251 Vivo msn: [email protected] Empresa: Perfil Medicina e Segurança do Trabalho _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -------------------------------------------------------------------------------- _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
