...
| 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 lockada| 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 |
Verifica foi executado via | está sendo executado de dentro de um Job | .F. |
|
|
Funções relacionadas:
MSUnlock()