Árvore de páginas

Versões comparadas

Chave

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

...

  • Esta função é utilizada quando se tem uma tabela aberta, compartilhada e se deseja bloquear um registro para que outros usuários não possam alterá-lo.
  • Caso não haja tabela aberta, o programa será encerrado com ocorrência de erro recuperável "Work area not in use".
  • Caso o número de bloqueios exceda o limite indicado pela chave MaxLocks (valor padrão: 10000), o programa será encerrado com ocorrência de erro fatal "Number of locks exceeded - Total: TTT File: NNN", onde TTT é o número de bloqueios efetuados e NNN o número de registros bloqueados.
  • Se a tabela está aberta em modo exclusivo, a função não altera o bloqueio do registro e retorna .T..
  • O usuário pode escolher o registro que será bloqueado, através do parâmetro nRec, mas se este não for especificado, o registro corrente será bloqueado, como na função RLock.
  • Ao bloquear o registro atual, não informando o parâmetro nRec, é realizado um desbloqueio de todos os registros bloqueados da tabela antes de bloquear o registro atual. Caso haja erro nesse desbloqueio, será apresentada no log de console do AppServer uma mensagem "Warning - DBRLock - Unlock error".
  • Esta função funciona de forma oposta a DBRUnlock, que libera os registros bloqueados.
  • O principal motivo de retorno .F. é quando o registro já foi bloqueado por outro usuário.
  • Se um registro já estiver bloqueado e a conexão que fez o bloqueio tentar bloquear novamente esse mesmo registro, a função retornará .T..
  • Caso um programa faça mais de uma conexão com o SGBD, a primeira conexão bloquear um registro, e a segunda conexão tentar atualizar esse registro, o programa será encerrado com ocorrência de erro recuperável "Update error - lock required". Contudo, se a segunda conexão fizer o bloqueio antes de atualizar, o bloqueio será efetuado e o registro poderá ser modificado.
  • A função DBCloseArea remove todos os bloqueios realizados.

...