rlock quem esta prendendo ?

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

Moderador: Moderadores

paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

rlock quem esta prendendo ?

Mensagem por paiva_dbdc »

Boa Noite

quando se tenta prender um registro e OUTRO usuário esta com ele aberto

tem como se saber QUAL usuário esta usando ?

ex:

5 pc com o sistema aberto.

preciso prender um registro para poder altera-lo.

+ da erro por ter alguém acessando este registro.

tem como obter a identificação desse usuário que esta impedindo de se alterar o registro ?

desde já agradeço

Paiva
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

rlock quem esta prendendo ?

Mensagem por Kapiaba »

Se voce guardar o LOGIN dele...
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

rlock quem esta prendendo ?

Mensagem por asimoes »

pode ser até o ip
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

rlock quem esta prendendo ?

Mensagem por JoséQuintas »

Teria que acrescentar um campo no dbf pra isso.
Quando rlock() não funcionar, mostrar o conteúdo atual do campo.

Código: Selecionar todos

IF Rlock()
   REPLACE usuario WITH UsuarioLogin()
ELSE
   MsgExclamation( "registro preso pelo usuário " + usuario )
ENDIF
De brinde, terá o nome da última pessoa que mexeu no registro.
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/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

rlock quem esta prendendo ?

Mensagem por asimoes »

Quintas,

Usuário login é o mesmo que hb_getenv("username") ?

REPLACE usuario WITH hb_getenv("username")
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

rlock quem esta prendendo ?

Mensagem por paiva_dbdc »

Boa

se alteram o registro GUARDO o usuário e a data.

MAIS ............ o Problema é que UM usuário deu um enter para OLHAR e Não alterou ainda.

ai outro vendedor vai vender este produto por ex: e eu preciso alterar a qtd de estoque do produto ou seja

tenho que dar um lock e altera a quantidade

ai ao dar o LOCK não fica OK porque tem ALGUEM OLHANDO ou alterando o registro do produto em questão.

o rlock só retorna .T. ou .F. ???

neste momento precisaria identificar qual usuário esta olhando o produto .

tem solução ?

NAO sei se o dbf ou o win guarda quem esta LENDO um determinado registro(rs)

ai poderia mostrar quem (n) esta mexendo no registro em questão

ob

Paiva
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

rlock quem esta prendendo ?

Mensagem por paiva_dbdc »

opa

é .... uma saída seria eu alterar se der enter .. desta forma saberia lá na venda ou onde precisar ... quem esta olhando

se não tiver nada automático vou ver se implemento

ob


Paiva
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

rlock quem esta prendendo ?

Mensagem por asimoes »

Uma ideia,

Você pode criar uma tabela de usuarios com os campos: nome do usuário, data e hora
Quando o usuário entrar na rotina de venda, você grava nesta tabela o nome do usuário, data e hora.

Primeiro você lê a tabela e posiciona no último registro e pega o nome do usuário e mostra na tela, depois grava na tabela usuarios o nome, data e hora

Sequencia.

1-Abre a rotina
2-Abre a tabela usuarios e posiciona no último registro (esta tabela não tem indice)
3-Mostra o nome do último usuário que está usando a rotina, pode mostrar até a hora
4-Depois que mostrar, grava na tabela o nome, data e hora

Pra pegar o nome do usuário: hb_getenv("username")

É só uma ideia.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

rlock quem esta prendendo ?

Mensagem por JoséQuintas »

Nos cadastros em geral, bloqueia só na hora de salvar os dados.
Pedidos e outros semelhantes seriam uma exceção.
Crie uma forma mais fácil de consultar... rs... não sei se é o caso.

Nota:
Pra consultar não precisa rLock(), só pra alterar.
Tem gente que coloca isso até em relatório....
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/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

rlock quem esta prendendo ?

Mensagem por rochinha »

Amiguinhos,

Tempos atrás postei um método que estive utilizando em um cliente. Durante dois meses o mesmo foi usado no sistema de forma transparente e cessaram os problemas de travamento.

Acontecia justamente porque usuários diferentes teimavam e tentar alterar registros idênticos.

Veja neste tópico

Só tive de trancar porque um camarada, ao invés de ajudar com exemplos práticos, ficou criticando.

Apesar de ter usando com Fivewin, pode servir para seus intentos. Não desprezando é claro todos os auxílios dados pelos caros amigos forenses até agora.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

rlock quem esta prendendo ?

Mensagem por asimoes »

Pode também questionar o usuário antes de entrar na rotina se é para somente consulta ou inclusão/alteração, ai já dá pra fazer um controle melhor.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

rlock quem esta prendendo ?

Mensagem por JoséQuintas »

Me chamou a atenção esta parte do outro post.
nunca aconteceu com voce, de travar um registro em um terminal e outro terminal ao travar o mesmo registro destravar o primeiro.
Também nunca percebi isso acontecer.

Uma coisa é fonte do semáforo.
Outra coisa é o fonte do exemplo, que apesar de usar o semáforo, só faz sentido pra quem sabe da ocorrência acima.

Eu inicialmente também acharia o exemplo inútil, por nunca ter visto a ocorrência acima.
Só o exemplo de uso, não a rotina de semáforo.

Foi isso que aconteceu lá, revise depois.
Um não entendeu o ponto de vista do outro.... rs
Inclusive o que ele comentou de melhorar já estava avisado no seu texto: pra cada um escolher o que acharia melhor pra mostrar
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