Função: RecLock
Descrição:
Permite a inslusão ou alteração de um registro no alias informado.
Comportamento:
Quando parametrizada para inclusão de registro, informando o 2o parâmetro como .T., inicia internamente a inserção de um novo registro no alias especificado como parâmetro. O novo registro permanece apenas na memória do Servidor de Aplicação até o momento em que uma operação de reposicionamento de registro (DBSkip, DBGoto , DbSeek, etc...) ou uma operação que forçe o envio do registro ( DBCommit, MSUnlock, Recno) seja executada. O registro inserido permanece bloqueado em modo exclusivo para o processo que está realizando a inserção, até que a instruçáo MSunlock() seja chamada.
Quando parametrizada para alteração de registro, informando o 2o parâmetro como .F., tenta realizar um bloqueio do registro atualmente posicionado no alias especificado, para permitir realizar alterações nos campos deste registro.
O alias em questão não pode ser uma Query, ou estar aberto em modo de "somente leitura", pois neste caso nenhuma das operações (inclusão ou alteração) serão possíveis. A função RecLock() deve trabalhar em conjunto com a função MSUnlock(), que deve ser chamada assim que todos os dados que devam ser registrados nos campos do registro atual tenham sido alimentados.
Programa Fonte:
APLIB060.PRWSintaxe:
RecLock ( < cAlias > , < lAdd > , [ l1 ] , [ lSoft ] , [ lInJob ] ) --> lRet
Retorno:
lRet
- (logico)
- .T. se conseguiu lockar o registro, .F. se deu erro
Exemplos:
Exemplo 01 - Inclusão
========================================
DbSelectArea("SA1")
RecLock("SA1", .T.)
SA1->A1_FILIAL := xFilial("SA1")
SA1->A1_COD := "900001"
SA1->A1_LOJA := "01"
MsUnLock() // Confirma e finaliza a operação
Exemplo 02 - Alteração
======================================
DbSelectArea("SA1")
DbSetOrder(1)
If DbSeek("01"+"900001"+"01")
RecLock("SA1", .F.)
SA1->A1_NOME := "CLIENTE TESTE"
SA1->A1_NREDUZ" := "TESTE"
MsUnLock() //Confirma e finaliza a operação
EndIf
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cAlias | Caracter | Alias da tabela alvo da inserção e/ou alteração de registro | |||
lAdd | Lógico | Parâmetro que verifica se a instrução a ser executada é uma inclusão. | |||
l1 | Lógico | Não utilizado | .F. | ||
lSoft | Lógico | Pergunta para o usuário se deseja lockar novamente o registro | .F. | ||
lInJob | Lógico | Indica se o comando está sendo executado de dentro de um Job | .F. |
Funções relacionadas:
1 comentário
Usuário desconhecido (everson.almeida)
Bom dia,
Podem preencher com as informações de Default e Obrigatório dos dois primeiros parametros?