Buffer-compare

Discussão em 'Progress 4GL' iniciado por antonioc, Março 20, 2012.

  1. antonioc

    antonioc Membro Participativo

    Boa tarde.

    Preciso comprar uma tabele antes de ser alterada e depois que foi alterar. Preciso inckusive saber o que tinha antes e deposi de cada campo alterado.

    Estou utilizando o buffer-compare, não estou consguindo mostrar o que tinha antes e o que tinha depois nos campo alterado.

    Alguém tem um exemplo.

    Obrigado.

    Antonio
  2. LFBuozi

    LFBuozi Membro Participativo

    Creio que você deveria criar uma tabela temporária igual a tabela original, fazer um buffer-copy e depois o buffer-compare, por exemplo:
    Código:
    def temp-table tt-tabela like tabela.
    find first tabela.
    create tt-tabela.
    buffer-copy tabela to tt-tabela.
    update tabela.
    buffer-compare tabela to tt-tabela.
  3. Rodrigo Rossetto

    Rodrigo Rossetto Membro Participativo

    Você também pode complementar a sintaxe do comando para salvar os campos alterados.

    Código:
    SAVE RESULT IN v_character
  4. antonioc

    antonioc Membro Participativo

    Bom dia.

    Obrigado pelos exemplo, mas até ai eu já tinha chegado.

    Eu preciso que além de mostrar os campos alterados, preciso que a rotina me mostre o valor antigo e o novo valor de cada campo alterado.


    Se alguém puder ajudar, eu agradeço
    Antonio
  5. LFBuozi

    LFBuozi Membro Participativo

    No exemplo que mandei, você copia o registro para uma tabela temporária e altera, assim você pode usar o buffer-compare, como também trabalhar com este registro antigo na tabela temporária como precisar.
    Agora me diga, você vai precisar manter um histórico em banco dessas alterações, assim como faz o Audit Trail da Datasul?
  6. antonioc

    antonioc Membro Participativo

    sim , quero guardar. Quero verificar o conteudo apenas dos campos que foram alterados, não da tabela inteira.


    Antonio

Compartilhe esta Página