Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Betina

o mesmo programa a executar em PC´s diferentes

Recommended Posts

Ola!Tou com um pequeno problema. Estou a tentar executar o meu programa mais que uma vez (de computadores diferentes utilizando a mesma base de dados), utilizando uma pasta partilhada.Utilizo o Paradox.A minha intenção é que o segundo utilizador possa aceder ao programa (Já estando um a ser executado noutro posto). O que queria saber é quando um segundo utilizador vai tentar correr o programa, como é que detecto que o programa já está aberto, ou que a base de dados já está a ser utilizada no outro posto? Queria saber isto para que eu o obrigue apenas a consultar o programa e não fazer alterações.Utilizei a propriedade "exclusive" numa das tabelas mas não está a funcionar. Ou seja, abre-me o programa normalmente sem dar erro a indicar que a base de dados já está aberta.Agradecia se alguém soubesse me dar uma dica.Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

... A minha intenção é que o segundo utilizador possa aceder ao programa (Já estando um a ser executado noutro posto). O que queria saber é quando um segundo utilizador vai tentar correr o programa, como é que detecto que o programa já está aberto, ou que a base de dados já está a ser utilizada no outro posto? Queria saber isto para que eu o obrigue apenas a consultar o programa e não fazer alterações.

Uma forma de fazer isso:Quando o programa é iniciado, ele testa a existência de um "arquivo de controle" na pasta compartilhada; se o arquivo não existir, então cria o arquivo e assume que esta é a primeira execução do programa. Quando o próximo usuário executar o programa, o arquivo já existirá e assume que deve operar em modo de consulta.Há um problema se o programa executado pelo primeiro usuário, por algum motivo, não excluir o arquivo de controle quando for encerrado.Outra forma (mais trabalhosa) seria usar um esquema cliente/servidor (usando TServerSocket/TClientSocket, ICS ou Indy).Quando o programa é iniciado, ele tenta conectar com um servidor na rede; se a conexão falhar, então inicia um servidor e assume que esta é a primeira execução do programa. Quando o próximo usuário executar o programa, o programa vai conseguir conectar com um servidor e assume que deve operar em modo de consulta.

... Utilizei a propriedade "exclusive" numa das tabelas mas não está a funcionar. Ou seja, abre-me o programa normalmente sem dar erro a indicar que a base de dados já está aberta.

Talvez o BDE/Paradox não esteja configurado corretamente nas máquinas. Experimente dar uma olhada, por exemplo, neste artigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.