...
Portuguese |
---|
Pagetitle |
---|
| RecLock -Comando de alteração em modo exclusivo |
---|
| RecLock -Comando de alteração em modo exclusivo |
---|
|
Função: RecLock -Comando de alteração em modo exclusivo |
Abrangências: | Microsiga Protheus 8.11 , Protheus 10 |
Versões: | Microsiga Protheus 8.11 , Protheus 10 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Nível de Acesso: | Nível 1 (Acesso Clientes) |
Idiomas: | Espanhol , Inglês |
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.
Descrição:Bloqueia registro posicionado na tabela para comandos de alteração em modo exclusivo
Programa Fonte:APLIB060.PRW
Sintaxe:RecLock -Comando de alteração em modo exclusivo ( [ cAlias ] [ lAdd ] ( < 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
ExemplooperaçãoExemplo 02 - Alteração
======================================
DbSelectArea("SA1")
DbSetOrder(1)
If DbSeek("01"+"900001"+"01")
If Found() RecLock("SA1", .F.)
SA1->A1_NOME := "CLIENTE TESTE"
SA1->A1_NREDUZ" := "TESTE"
MsUnLock() //Confirma e finaliza a operaçãoEndIfoperação
EndIf
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
cAlias | Caracter | Alias da tabela |
a ser lockadaalvo 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 |
Verifica foi executado via está sendo executado de dentro de um Job | .F. |
|
|
Funções relacionadas:
MSUnlock()