Registro indisponível, mesmo fechando sistema nos outros PC

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Registro indisponível, mesmo fechando sistema nos outros PC

Mensagem 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
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Registro indisponível, mesmo fechando sistema nos outros PC

Mensagem 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.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Registro indisponível, mesmo fechando sistema nos outros PC

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Registro indisponível, mesmo fechando sistema nos outros PC

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder