Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

LOCK

Propósito

Bloquear um banco de dados.

Sintaxe

LOCK [UNDO]

Argumentos

UNDO

determina que todas as atualizações sejam desfeitas automaticamente na ocorrência de algum erro durante uma atualização.

Utilização

Quando for necessário fazer uma atualização muito grande que envolva vários arquivos (transação), para que não se perca a confiabilidade das informações do banco de dados. Isto evita a concorrência nas atualizações de um banco de dados num sistema multi-usuário. O comando LOCK determina o início de uma transação, bloqueando o banco para uso exclusivo do usuário que fez o primeiro pedido de bloqueio. O comando LOCK deve ser usado em conjunto com o comado UNLOCK para determinar o início e o fim de uma transação.

Para se utilizar a opção UNDO a opção ARQRECUP no esquema do BD deve estar especificado.

É aconselhado que entre o início e o fim de uma transação não se tenha interrupção do programa (nenhum estado de espera), para que o banco fique menos tempo possível bloqueado.

Exemplo

O exemplo a seguir mostra a utilização do comando LOCK para demarcar o início de uma transação com bloqueio de dados.

LOCK     && Bloqueia banco de dados.

IF DBERR( ) # 0

  erro = .T.

ELSE

  SELECT c

  REPLACE AUTOMEM

  INSERT     && Inclui um registro.

  IF DBERR( ) # 0

    erro = .T.

  ENDIF

ENDIF

IF erro     && Se ocorreu algum problema erro = .T.

   UNDO     && Desfaz todas as atualizações anteriores.

ENDIF

UNLOCK     && Desbloqueia banco de dados.

Consulte

$FILES, FIND, SEEK, SET LOCKLOOP, SET MESSAGE, UNDO, UNLOCK e DBERR( ).

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!