Boa tarde pessoal !
Tenho uma pequena duvida:
Meu sistema abre um determinado arquivo em duas estações diferentes ao mesmo tempo atraves de um dbedit(). Os usuarios nas duas estações posicionam o cursor no mesmo registro. Um deles (estaçao1) confirma a exclusao do registro antes do outro (estação2) que tambem o exclui em seguida. Quer dizer, nao exclui porque o mesmo ja fora excluido pelo outro usuario (estação1).
Sei que se na estação2 eu pressionasse qualquer tecla, isso atualizaria o dbedit e o registro excluido na estação1 nao seria mais mostrado.
Agora pergunto:
Quando eu tentei a exclusao na estação2, internamente o que acontece, pois fisicamente o registro nao existe mais ?
Espero que tenham entendido minha explicação.
Grato
Ademir.
Trafego de dados em rede local.
Moderador: Moderadores
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Re: Trafego de dados em rede local.
Nada, pois provavelmente você só está dando um DELETE, o que apenas "marca" o registro para posterior eliminação com PACK. Ou seja, você só está REmarcando um registro já marcado. Se não me engano ainda assim dependeria de um COMMIT para que a primeira alteração fizesse efeito no segundo PC.Ademir escreveu:Quando eu tentei a exclusao na estação2, internamente o que acontece, pois fisicamente o registro nao existe mais ?
Agora, se o fato for de que isso atrapalha o uso do sistema, talvez seja necessário abrir o arquivo exclusivamente, e nem deixar executar o segundo dbEdit() junto com o primeiro.
Falou!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Olá,
O Refresh você só vai consegur utilizar se mudar para TBrowse, com dbEdit vai ter que fazer a atualização "na mão".
Sendo assim, como em todos os casos, recomendo mesmo que parta para o TBrowse, não há nada a perder.
Falou....
O Refresh você só vai consegur utilizar se mudar para TBrowse, com dbEdit vai ter que fazer a atualização "na mão".
Sendo assim, como em todos os casos, recomendo mesmo que parta para o TBrowse, não há nada a perder.
Falou....
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Como disse o Stanis, o ideal seria vc mudar para TBROWSE() e dar um refresh assim que alguem deletar o registro...ou a cada x segundos...agora de uma olhada no DBEDIT.CH lah tem uma referencia de REFRESH para DBEDIT() , de uma procurada aqui no forum que postei um exemplo de como eu usava o DBEDIT() no clipper e ele funcionava em rede blz...se não achar avisa...que amanha ou segunda posto um exemplo aqui !!!
Abraços
Leonardo Machado
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Bom dia a todos !
No caso de exclusao do mesmo registro em duas ou mais estações diferentes, resolvi o problema avisando o usuario que o registro já foi excluido em outra estação da seguinte forma:
Após bloquear o registro, verifico se o mesmo já foi excluido atraves da função DELETED(). Se retornar verdadeiro, dou o aviso. Se retornar falso, excluo o registro. Em seguida desbloqueio o registro e pronto !
Se alguem tem mais alguma opiniao a respeito, gostaria de saber.
Grato pela atenção de todos
Ademir.
No caso de exclusao do mesmo registro em duas ou mais estações diferentes, resolvi o problema avisando o usuario que o registro já foi excluido em outra estação da seguinte forma:
Após bloquear o registro, verifico se o mesmo já foi excluido atraves da função DELETED(). Se retornar verdadeiro, dou o aviso. Se retornar falso, excluo o registro. Em seguida desbloqueio o registro e pronto !
Se alguem tem mais alguma opiniao a respeito, gostaria de saber.
Grato pela atenção de todos
Ademir.