Duvida Roolback

Discussão em 'Progress 4GL' iniciado por julianfiglioli, Setembro 28, 2015.

  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Todos já falaram tudo, mas é isso mesmo, o banco de dados não tem rollback, é na aplicação que vc gerencia usando do transaction.
    rhemati curtiu isso.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    O Delete que fiz por fora era somente para ilustrar quando é gravado ou não dependendo da forma que foi escrito a aplicação.

    Nas dezenas de testes que fiz com transações na versão 10.1C mostraram que apenas o DO TRANS não era efetivo se ocorresse algum STOP ou QUIT da aplicação.

    Não sei se isso foi resolvido na versão 10.2B, só testando novamente para testar.

    Como a @Eilleen disse, o ideal é gravar tudo em temp-tables e depois numa transação jogar tudo para o banco de dados sem mensagens no meio.

    Se for necessário alguma mensagem no meio, que NUNCA seja de confirmação e ela deve ser armazenada numa temp-table NO-UNDO e exibida depois da finalização da transação para que a transação não fique travada.

    Abraço

    Rafael
    julianfiglioli curtiu isso.
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    *Não sei se isso foi resolvido na versão 10.2B, só testando novamente para saber se ainda continua. :eek::oops::)
  4. julianfiglioli

    julianfiglioli Membro Participativo

    Senhores, muito obrigado pelas informações.
  5. reissobr

    reissobr Membro Ativo

    Pessoal, tenho um processo que é bem o colocado pela Eileen. É o processo de custo gerencial.
    Crio temp-tables para estrutura e processo, valorizo segundo nossos critérios para custo gerencial.
    No final, chamo um procedure interna que grava as tabelas do cusdto do item e o histórico do calculo, baseado na estrutura e operações.

    Quando coloquei o do trans a primeira vez, fiz assim:

    do trans:
    run pi-grava-tabelas.
    end.

    E na compilação ocorreu a mensagem: ** ADVERTENCIA -- TRANSACTION para um bloco que ja' e' transacao. (214)

    Ai coloquei o do trans dentro da procedure e a mensagem não ocorreu mais.
    Não entendi o motivo da mensagem, quando chamo uma procedure interna dentro do do trans.

Compartilhe esta Página