Liberar registro com exclusive-lock

Discussão em 'Progress 4GL' iniciado por Bruno Silva, Novembro 21, 2011.

  1. Bruno Silva

    Bruno Silva Sem Pontuação

    Pessoal,

    tenho uma tabela que controla uma sequencia de numeração.

    Criei uma rotina que faz a leitura da tabela com exclusive-lock e soma mais 1 no campo de numeração, mas após gravar a numeração, preciso liberar o registro dessa tabela.

    Ex.:

    find tabela exclusive-lock.
    assign tabela.campo = tabela.campo + 1.
  2. lima

    lima Membro Participativo

    Amigo,

    você pode usar dois comandos, sendo mais ideal o primeiro.

    release nome-tabela no-error.

    find current nome-tabela no-lock no-error.

    abraços.
  3. Bruno Silva

    Bruno Silva Sem Pontuação

    Irmão,

    já tentei com release e find current e não liberar a leitura da tabela.
  4. lima

    lima Membro Participativo

    Impossivel meu velho,

    posta seu código aqui, deixa eu ver!!!
  5. Bruno Silva

    Bruno Silva Sem Pontuação

    Lima,

    segue um exemplo do código, enquanto não termina o update, não libera o registro da tabela numpedop.

    def var i-pedop like numpedop.num-pedop.
    find numpedop where
    numpedop.emp-codemp = codemp
    exclusive-lock no-error.
    assign numpedop.num-pedop = numpedop.num-pedop + 1
    i-pedop = numpedop.num-pedop.

    find current numpedop no-lock no-error. OU release numpedop no-error.

    create cadpedpre.
    assign cadpedpre.ped-numped = i-pedop.

    update cadpedpre.emp-codemp
    cadpedpre.ped-numped
    cadpedpre.ped-iteped
    cadpedpre.ped-datdig with no-validate.
  6. lima

    lima Membro Participativo

    Amigo, tenta rodar a lógica abaixo e me retorne.

    Código:
    
    DEF var i-pedop like numpedop.num-pedop.
    
    DO TRANSACTION:
    
        find numpedop where
        numpedop.emp-codemp = codemp exclusive-lock no-error.
        IF AVAIL numpedop THEN
            assign numpedop.num-pedop = numpedop.num-pedop + 1
                   i-pedop            = numpedop.num-pedop.
        
        release numpedop no-error.
    END.
    
    DO TRANSACTION:
        create cadpedpre.
        assign cadpedpre.ped-numped = i-pedop.
        
        update cadpedpre.emp-codemp
        cadpedpre.ped-numped
        cadpedpre.ped-iteped
        cadpedpre.ped-datdig with no-validate.
    END.
    
    
    Abraços.

Compartilhe esta Página