Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Inicia a transação em uma "chave", bloqueando o acesso aos seus valores nas tabelas "Tabela X" e "Tabela A"

Sintaxe

 

Bloco de código
titleVarBeginT
lRet := VarBeginT( <cUID>, <cChave> )

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
cUIDCaractere

Identificador da sessão de Variáveis Globais

X  
cChaveCaractereIdentificador da chaveX  

Retorno

NomeTipoDescriçãoObservações
lRetLógico

Indica se conseguiu iniciar a transação na chave <cChave> da sessão <cUID>

Retorna .T. se a função foi executada corretamente e se houver algum erro retorna .F.

Observações

Toda transação iniciada em uma "chave" ("VarBeginT") deve ser finalizada com "VarEndT".

Toda transação bloqueia o acesso as seguintes funções: "VarGetX", "VarGetA", "VarGet", "VarSetX", "VarSetA", "VarSet", "VarDelX", "VarDelA" e "VarDel", estas funções ficam paradas até terem a permissão de acesso novamente, servindo com mecanismo de sincronização de dados entre "Job/Thread".

A função "VarClean", irá limpar o conteúdo das tabelas "Tabela X" e "Tabela A", porém irá retornar com erro (.F.) indicando que tem alguma transação de "chave" em curso, não podendo concluir a ação de limpeza.

Mesmo com uma transação em uma "chave" em curso, pode se recuperar e/ou até gravar dados nesta "chave", vale observar que as recuperações/leituras (funções Get), podem ser executadas sem nenhum prejuízo para o "Job/Thread" que detém a transação, todavia a as funções de atualização (funções Set) tem que ser usadas com cautela e com muito conhecimento de causa, pois com a alteração irá promover uma mudança do valor da "chave" e como o outro "Job/Thread" reservou a "chave" com a transação, esta alteração pode causar efeitos indesejáveis para aquela transação. As funções que fazem este acesso sujo, são as que terminar com a letra "D" ("Dirty"), funções: "VarGetXD", "VarGetAD", "VarGetD", "VarSetXD", "VarSetAD" e "VarSetD".

Se a função retornar Falso (.F.), houve algum erro na criação da transação, logo a finalização da transação "VarEndT" não deve ser executada.

A Transação em uma "chave" pode ser iniciada em um "Job/Thread" e finalizada em outro "Job/Thread".

Se uma transação for iniciada em um "Job/Thread" e este "Job/Thread" terminar naturalmente, a transação será mantida, devendo neste caso ser finalizada em outro "Job/Thread".

Se uma transação for iniciada em um "Job/Thread" e este "Job/Thread" terminar por um erro, a transação será finalizada automaticamente. ((aviso) Disponível em Build igual ou superior a 7.00.131227A NG)

(aviso) Disponível em Build igual ou superior a 7.00.131227A

Exemplos

Exemplo 
Toggle Cloak
exclusivetrue

Cloak
visibletrue
true

Veja também

VarSetUIDVarEndT