Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Detalhar comportamento da função

Sintaxe

 

MSUNLOCK( )

 

Propósito

 Descrição

Libera o travamento / bloqueio (lock) do registro posicionado , desde que o lock não seja feito dentro de um transação. Neste caso, o lock somente será liberado ao termino da mesma.

 

Argumentos

no alias corrente, obtido através da função RecLock()

Argumentos 

Nenhum.

 

Utilização 

Para gravar ou atualizar inserir um novo registro ou alterar o conteúdo dos campos de um registro do de um arquivo de dados, é necessário travar (reservar) o registro. Para isso, utiliza-se a função RECLOCK(). Após a atualização, é necessário destravar o registro através da chamar a função MSUNLOCK() para que outros usuários possam atualizá-lo, caso seja necessário.

 

Exemplos

, para indicar o final da operação (inclusão ou alteração),  e consequentemente liberar o bloqueio exclusivo do regisrtro. 

Caso o bloqueio do registro tenha sido obtido durante uma transação explícita – iniciada pelo comando BEGIN TRANSACTION – o bloqueio do registro somente será realmente liberado no final da transação. Porém, a instrução MSUnlock() deve ser chamada mesmo assim, para indicar o final da operação e internamente fazer a atualização dos valores atuais no registro da tabela. 


Exemplo: 

dbSelectArea(“SA1”)
dbSetOrder(1)      // A1_FILIAL + A1_COD + A1_LOJA
If dbSeek( xFilial(“SA1”) + “900001” + “01”)     // Busca exata

...

IF FOUND()    // Avalia o retorno da pesquisa realizada

...

          RECLOCK(“SA1”, .F.) // BLoqueia o registro para alteração

 

...

          SA1->A1_NOME := “MARCOS AURELIUS TERCEIRUS”
          SA1->A1_NREDUZ := “MARCOS AURELIUS”

...

          MSUNLOCK()     // Destrava o registro
EndIf

ENDIF


Funções relacionadas:

RecLock()