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

SET Lockloop

Propósito

Determinar o número máximo de tentativas de bloqueio de dados após estes já terem sido bloqueados por outro usuário.

Sintaxe

SET LOCKLOOP TO <numero>

Argumentos

<numero>

representa o número de tentativas de bloqueio.

Utilização

Em programas que utilizem bloqueio de dados, para que estes, ao tentarem bloquear um dado já bloqueado por outro usuário, executem apenas um determinado número de tentativas de bloqueio. Depois de cada tentativa de bloqueio, é executada uma pausa de dois segundos até a próxima tentativa (SLEEP 2).

Este comando evita que o programa fique em DEAD-LOCK.

Quando não for possível o bloqueio, verificar se o processo que o executou ainda está ativo. Caso não esteja, usar o utilitário BDRECU.

A função DBERR( ) retorna 605 quando exceder o número de tentativas de bloqueio.

Exemplo

O exemplo a seguir mostra-nos um máximo de dez tentativas de bloqueio de dados.

SET LOCKLOOP TO 10

LOCK

MODIFY

IF DBERR( ) # 0

  erro = .T.

ELSE

  SELECT c

  REPLACE AUTOMEM

  INSERT

  IF DBERR( ) # 0

    erro = .T.

  ENDIF

ENDIF

IF erro

  UNDO

ENDIF

UNLOCK

Consulte

LOCK.

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