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: 1058
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: 1718
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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