MsUnlock

Libera o registro travado por RecLock. Esquecer essa chamada e a causa #1 de bugs de bloqueio em producao.

Assinatura: MsUnlock([cAlias]) -> NIL

Retorna: NIL

MsUnlock e o par obrigatorio do RecLock. Toda vez que voce trava um registro pra editar ou incluir, precisa destravar antes de sair da rotina ou do If — senao o lock persiste ate o usuario fechar o SmartClient, bloqueando todo mundo que tentar editar o mesmo registro.

Sintaxe

If RecLock("SA1", .F.)        // .F. = alterar registro atual
    SA1->A1_NOME := "NOVO"
    SA1->(MsUnlock())          // libera o lock + grava
EndIf

Quando usar

Pegadinhas

Padrao recomendado

If SA1->(RecLock("SA1", .F.))
    Begin Sequence
        SA1->A1_NOME := "ALTERADO"
        SA1->A1_EMAIL := "novo@email.com"
    Recover
        ConOut("Erro alterando SA1")
    End Sequence
    SA1->(MsUnlock())   // <-- SEMPRE aqui, antes do EndIf
EndIf

Parâmetros

NomeTipoObrigatórioDescrição
cAliasCharacternãoAlias da tabela. Default: alias atual.

Exemplos

Padrao inclusao

RecLock("SA1", .T.)        // .T. = incluir
SA1->A1_FILIAL := xFilial("SA1")
SA1->A1_COD    := cCodigo
SA1->A1_NOME   := cNome
SA1->(MsUnlock())

Veja também