Como Criar um Arquivo Temporário na rede
Opa!
Surgiu uma Duvida se se algum poder ajudar seria ótimo.
Eu estou tentando implementar uma rotina para verificação de usuários com o objetivo saber se o usuário que está saindo do sistema é o último usuário logado no sistem ... só que não sei se essa ideia vai funcionar lá vai.
queria saber se tem como criar um arquivo temporário na rede e toda vez que um usuário logar verifica se o arquivo já está aberto e toda que o usuário tentar sair do sistema ele tenta deletar o arquivo. Se o usuário não conseguir apagar é porque existe outro usuário na rede manipulando o arquivo...
alguém pode me dar uma luz como fazer...
Surgiu uma Duvida se se algum poder ajudar seria ótimo.
Eu estou tentando implementar uma rotina para verificação de usuários com o objetivo saber se o usuário que está saindo do sistema é o último usuário logado no sistem ... só que não sei se essa ideia vai funcionar lá vai.
queria saber se tem como criar um arquivo temporário na rede e toda vez que um usuário logar verifica se o arquivo já está aberto e toda que o usuário tentar sair do sistema ele tenta deletar o arquivo. Se o usuário não conseguir apagar é porque existe outro usuário na rede manipulando o arquivo...
alguém pode me dar uma luz como fazer...
Eduardo Silva
Curtidas 0
Melhor post
Luiz Vichiatto
14/11/2017
Fazer isto por arquivo em lock de leitura, sei não!
Corre o risco da aplicação ter encerramento forçado e não fechar o arquivo, pronto está feito o problema.
Se você utiliza banco de dados, tente por registro em uma tabela, com usuário e data do acesso, caso tente acessar novamente haverá um registro do usuário, e no caso ter que reiniciar o usuário, apenas exclua o registro da tabela e pronto o acesso terá restaurado.
No caso de criar arquivo, posso te dizer é fato que terá problemas.
1) O mapeamento da rede muda de servidor e não tem acesso de gravação de arquivo.
2) A aplicação trava e encerra sem fechar o arquivo, a leitura fica ativo;
3) Se você tem o sistema em múltiplas áreas e arquivos, o controle irá prejudicar a manutenção;
Isso pra citar os principais.
Eu tenho um sistema que cada acesso eu controlo pelo PID e usuário, cada acionamento do programa ele grava no acesso do usuário e o número do pid do acionamento do programa, e funciona bem, tem um outro que não precisei dar manutenção que grava IP, placa de rede, mas é um mais específico que envia arquivos para área de produção e tem que saber se o equipamento tem permissão de envio.
Corre o risco da aplicação ter encerramento forçado e não fechar o arquivo, pronto está feito o problema.
Se você utiliza banco de dados, tente por registro em uma tabela, com usuário e data do acesso, caso tente acessar novamente haverá um registro do usuário, e no caso ter que reiniciar o usuário, apenas exclua o registro da tabela e pronto o acesso terá restaurado.
No caso de criar arquivo, posso te dizer é fato que terá problemas.
1) O mapeamento da rede muda de servidor e não tem acesso de gravação de arquivo.
2) A aplicação trava e encerra sem fechar o arquivo, a leitura fica ativo;
3) Se você tem o sistema em múltiplas áreas e arquivos, o controle irá prejudicar a manutenção;
Isso pra citar os principais.
Eu tenho um sistema que cada acesso eu controlo pelo PID e usuário, cada acionamento do programa ele grava no acesso do usuário e o número do pid do acionamento do programa, e funciona bem, tem um outro que não precisei dar manutenção que grava IP, placa de rede, mas é um mais específico que envia arquivos para área de produção e tem que saber se o equipamento tem permissão de envio.
GOSTEI 2
Mais Respostas
Eduardo Silva
13/11/2017
Estou Usando o Firebird 2.5 e Delphi 10.1 o componente de acesso é o FireDac seara que tem como travar o registro da tabela pelo FireDac pois eu ja tentei marca como exclusivo e não consegui como eu não tenho muita experiencia com o FireDac não sei como fazer...
GOSTEI 1
Luiz Vichiatto
13/11/2017
Eduardo, sim tem.
O que você quer dizer com travar o registro na tabela?
O que você quer dizer com travar o registro na tabela?
GOSTEI 1
Eduardo Silva
13/11/2017
como fazer isso é o que eu não sei
Estou Usando o Firebird 2.5 e Delphi 10.1 o componente de acesso é o FireDac.
Seara que tem como travar o registro da tabela pelo FireDac?
Estou Usando o Firebird 2.5 e Delphi 10.1 o componente de acesso é o FireDac.
Seara que tem como travar o registro da tabela pelo FireDac?
GOSTEI 0
Luiz Vichiatto
13/11/2017
Estou tentando imaginar como bloquear, não vejo como, porém, você pode utilizar uma function no banco de dados para fazer a verificação de usuário, com retorno do usuário, e assim implementar diretamente no banco.
Você pode criar uma procedure ou function que somente elas alterem a tabela, não permitir alteração da tabela, no firedac se não estou enganado na tabela há uma propriedade chamda 'ReadOnly' indique-a como 'True'.
Feito isto teste, no geral tem que fazer por codificação.
Att
Você pode criar uma procedure ou function que somente elas alterem a tabela, não permitir alteração da tabela, no firedac se não estou enganado na tabela há uma propriedade chamda 'ReadOnly' indique-a como 'True'.
Feito isto teste, no geral tem que fazer por codificação.
Att
GOSTEI 2