Página 1 de 1

Registro indisponível, mesmo fechando sistema nos outros PC

Enviado: 25 Fev 2025 14:22
por porter
Olá pessoal,
Não é com frequência, mas tem acontecido, quando tento desbloquear um registro com Rlock(), o registro estar indisponível, mesmo
fechando o sistema nos outros computadores da rede, nessa rotina, o correto seria tentar uma quantidade de vezes, se não desbloquear
sair da rotina, não entendo porquê mesmo fechando o sistema em todas máquinas, ainda assim, o registro continua indisponível.

Código: Selecionar todos

SELECT 13
BloqReg("parametros")
REPLACE PEDIDO WITH cPEDIDO
UNLOCK

FUNCTION BLOQREG(ARQ)
      SAVE SCREEN
      IF RLOCK()
         RETURN .T.
      ELSE
         DO WHILE .T.
            IF !RLOCK()
               MENSAGEM("Registro Indisponível!  ( " + ARQ + " ) " )
               RESTORE SCREEN
               LOOP
            ENDIF
            EXIT
         ENDDO
      ENDIF
      RETURN .T.
HARBOUR 3.2 Dev

Registro indisponível, mesmo fechando sistema nos outros PC

Enviado: 25 Fev 2025 14:52
por Mario Mesquita
Olá!

Pode ter algo a ver com o Windows? Tem gente reclamando do 11 e até voltando pro 10...

Saudações,
Mario.

Registro indisponível, mesmo fechando sistema nos outros PC

Enviado: 25 Fev 2025 14:53
por alaminojunior
porter escreveu:Olá pessoal,
Não é com frequência, mas tem acontecido, quando tento desbloquear um registro com Rlock(), o registro estar indisponível, mesmo
fechando o sistema nos outros computadores da rede, nessa rotina, o correto seria tentar uma quantidade de vezes, se não desbloquear
sair da rotina, não entendo porquê mesmo fechando o sistema em todas máquinas, ainda assim, o registro continua indisponível.

Código: Selecionar todos

SELECT 13
BloqReg("parametros")
REPLACE PEDIDO WITH cPEDIDO
UNLOCK

FUNCTION BLOQREG(ARQ)
      SAVE SCREEN
      IF RLOCK()
         RETURN .T.
      ELSE
         DO WHILE .T.
            IF !RLOCK()
               MENSAGEM("Registro Indisponível!  ( " + ARQ + " ) " )
               RESTORE SCREEN
               LOOP
            ENDIF
            EXIT
         ENDDO
      ENDIF
      RETURN .T.
HARBOUR 3.2 Dev
Faltou um dbcommit antes de desbloquear !
Aproveitando, na verdade, seria bom um limite nas tentativas de bloquear o registro, pois pode ficar num loop eterno.

Registro indisponível, mesmo fechando sistema nos outros PC

Enviado: 25 Fev 2025 19:41
por JoséQuintas
Aqui deixo infinito faz tempo.
Mas bloqueio, gravo e libero.
Não esquecendo de dar tempo ao Windows.

Código: Selecionar todos

DO WHILE ! Rlock()
   Inkey(0.3)
ENDDO
Se o usuário esperar liberar e depois alterar, a última alteração é a que fica.
Qual a diferença entre 1 dia, 1 hora, 1 minuto ou 1 segundo ?
De que adiantou ficar bloqueado durante a alteração ?
Só pra criar problema kkkk