Histórico da Página
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: