Betina 0 Denunciar post Postado Fevereiro 18, 2005 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 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
Emerson.EN 0 Denunciar post Postado Fevereiro 19, 2005 uma dica, que pode não ser a melhor solução, mas funciona: no início da sua aplicação procure sempre por um arquivo (que, de preferência, esteja na mesma pasta onde estão suas tabelas). vamos chamá-lo de shared.shd. quando rodar sua aplicação, procure pelo arquivo: 1. se encontra-lo tente apagar. 1.1 se não conseguir apagar é porque outra estação está utilizando. então os dados para esse usuário deverão ser somente para leitura. ou, se conseguir apagá-lo, 1.2 crie-o e o mantenha aberto. esse usuário que conseguiu criar o arquivo e abrí-lo tem permissão para leitura/escrita no banco de dados. só o feche o arquivo shared.shd ao sair da aplicação. 2. se não encontrá-lo, siga os procedimentos do item 1.2 acho que isso pode ajuda-lo... Compartilhar este post Link para o post Compartilhar em outros sites
Betina 0 Denunciar post Postado Março 2, 2005 Ja me lembrei de fazer algo parecido mas caso a aplicação aborte por algum motivo, o ficheiro nao será apagado e se o utilizador voltar a tentar abrir o programa, e o programa abrirá em modo de leitura, o que não seria correcto. Obrigada pela dica na mesma :) Aceito mais sugestões :) Obrigada Compartilhar este post Link para o post Compartilhar em outros sites
InuTaishou 0 Denunciar post Postado Março 2, 2005 Betina, essa é a solução que eu uso, e quanto ao que você falou, é por isso que o Emerson disse que você deve tentar apagar o arquivo quando encontra-lo... Se por um acaso, o computador que o criou tiver saído sem excluir o arquivo (queda de energia, etc), você conseguirá deletar o arquivo sem problemas... Então, poderá recria-lo, para que você possa abrir em leitura/escrita...[]'s, Compartilhar este post Link para o post Compartilhar em outros sites
Betina 0 Denunciar post Postado Março 2, 2005 Já entendi :) Era pedir muito que algum de voces colocassem algum código para eu me orientar? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Muito obrigada mesmo Compartilhar este post Link para o post Compartilhar em outros sites
InuTaishou 0 Denunciar post Postado Março 2, 2005 No OnCreate do seu applicativo, coloque algo assim: DeleteFile( 'C:\Teste.txt' ); If FileExists( 'C:\Teste.txt' ) Then wModo := ReadOnly Else If CreateFile( 'C:\teste.txt' ) Then wModo := ReadWrite; Acho que só isso já vai funcionar... Lembrando que ReadOnly e ReadWrite eu já considerei que fosse um tipo existente, criado por você, assim como a variável wModo... Se precisar de algo mais detalhado, é só avisar... []'s, Compartilhar este post Link para o post Compartilhar em outros sites
Betina 0 Denunciar post Postado Março 4, 2005 Muito obrigada amigos!! Consegui reslver o problema com a vossa ajuda :D http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites