Travar um Registro usando ADO, Firebird e Delphi 7
Pessoal preciso de uma ajuda urgente.
Tenho um modulo de caixa que quando o usuário for digitar o código do cliente, este cliente tem que ficar bloqueado/travando, por exemplo se eu abrir duas vezes o modulo caixa com o mesmo cliente um dos caixa deverá receber a informação que este cliente está aberto em outro local.
Agradeço a ajuda de todos.
Tenho um modulo de caixa que quando o usuário for digitar o código do cliente, este cliente tem que ficar bloqueado/travando, por exemplo se eu abrir duas vezes o modulo caixa com o mesmo cliente um dos caixa deverá receber a informação que este cliente está aberto em outro local.
Agradeço a ajuda de todos.
Silvio Morelo
Curtidas 0
Respostas
Alisson Santos
29/03/2012
poderia dar mais detalhes, pois não consegui compreender o que precisa.
GOSTEI 0
Joel Rodrigues
29/03/2012
Acredito que você precisará de um campo na tabela de clientes, informando que o registro está em uso. Ao selecionar o cliente, verifique se o valor deste campo é true, se for, mostre a mensagem e não permita seu uso, senão, atualize este campo para true.
Seria algo do tipo?
Seria algo do tipo?
GOSTEI 0
Silvio Morelo
29/03/2012
Alisson, obrigado por ter respondido.
Eu preciso informar ao usuário que as informações referente ao cliente estão sendo visualizadas por outro usuários e neste caso talvez nem deixar abrir o caixa.
Silvio
Eu preciso informar ao usuário que as informações referente ao cliente estão sendo visualizadas por outro usuários e neste caso talvez nem deixar abrir o caixa.
Silvio
GOSTEI 0
Silvio Morelo
29/03/2012
Joel, a sua solução é bastante interessante, porem tenho uma dúvida, caso o sistema venha cair talvez por falta de energia com eu voltaria esta opção para False, liberando o cliente.
Silvio
Silvio
GOSTEI 0
Joel Rodrigues
29/03/2012
Qual banco de dados você está utilizando?
GOSTEI 0
Silvio Morelo
29/03/2012
Joel, estou usando o banco de dados Firebird 2.0
GOSTEI 0
Joel Rodrigues
29/03/2012
Amigo, agora você fez uma pergunta difícil.
Eu tenho uma ideia, mas não sei como implementá-la no Firebird e nem se é possível, mas é o seguinte:
Ao acessar o banco, você deve usar um usuário e senha ou o nome da estação de trabalho, ou do usuário do Windows, enfim, alguma credencial. No momento em que você acessasse a tabela de clientes, diria que o registro está em uso (usando um campo booleando, como dito acima) e em um outro campo você armazenaria quem está conectado, no caso, o usuário que inicioua conexão com o banco.
Em outra máquina, ao tentar acessar o cliente, você verificaria se o registro está em uso e o responsável pelo uso (usuário conectado) e então analisaria se o usuário que estava usando o registro ainda está conectado no banco de dados (se a conexão está ativa). Se a conexão está ativa, não permita o acesso ao cliente.
Não sei se fui claro o bastante, como disse, é uma ideia.
Eu tenho uma ideia, mas não sei como implementá-la no Firebird e nem se é possível, mas é o seguinte:
Ao acessar o banco, você deve usar um usuário e senha ou o nome da estação de trabalho, ou do usuário do Windows, enfim, alguma credencial. No momento em que você acessasse a tabela de clientes, diria que o registro está em uso (usando um campo booleando, como dito acima) e em um outro campo você armazenaria quem está conectado, no caso, o usuário que inicioua conexão com o banco.
Em outra máquina, ao tentar acessar o cliente, você verificaria se o registro está em uso e o responsável pelo uso (usuário conectado) e então analisaria se o usuário que estava usando o registro ainda está conectado no banco de dados (se a conexão está ativa). Se a conexão está ativa, não permita o acesso ao cliente.
Não sei se fui claro o bastante, como disse, é uma ideia.
GOSTEI 0