RecLock

Bloqueia o registro corrente pra gravacao. Sempre seguido de MsUnlock. Esquecer trava a tabela pra outros usuarios.

Assinatura: RecLock(cAlias, lInclusao) -> lOk

Retorna: Logical

RecLock abre o registro pra escrita. Sem ele, qualquer tentativa de atribuicao (SA1->A1_NOME := "X") falha. SEMPRE chame MsUnlock() depois.

Sintaxe

RecLock("ALIAS", lInclusao)  // .F. = alterar, .T. = incluir novo
// ... atribuicoes ...
MsUnlock()
// ou: ALIAS->(MsUnlock())

Exemplo

// Alterar registro existente:
DBSelectArea("SA1")
SA1->(DBSetOrder(1))
If SA1->(DBSeek(xFilial("SA1") + cCod))
    RecLock("SA1", .F.)
    SA1->A1_OBSERVA := "Atualizado em " + DToC(Date())
    SA1->(MsUnlock())
EndIf

// Incluir novo registro:
RecLock("SA1", .T.)
SA1->A1_FILIAL := xFilial("SA1")
SA1->A1_COD    := "999999"
SA1->A1_NOME   := "Cliente novo"
SA1->(MsUnlock())

Pegadinhas

Parâmetros

NomeTipoObrigatórioDescrição
cAliasCharactersimAlias da tabela (ex: 'SA1')
lInclusaoLogicalsim.T. = inclui novo registro, .F. = altera o corrente

Exemplos

Update simples

RecLock("SA1", .F.)
SA1->A1_OBSERVA := cNovaObs
SA1->(MsUnlock())

Veja também