Como limitar quantidade de instâncias do programa abertas
24/06/2008
0
Olá, tenho um sistema de automação comercial e gostaria de saber como posso controlar e limitar a quantidade de instâncias do meu programa abertas nas máquinas.
Quero implementar um controle para evitar que meus clientes instalem o sistema em mais máquinas que o combinado.
Levando em conta que o executavel está no servidor.
Já pesquisei mas nada resolveu meu problema.
http://forum.devmedia.com.br/viewtopic.php?t=3635&highlight=inst¬E2ncias+++sistema
http://forum.devmedia.com.br/viewtopic.php?t=51440&highlight=mais+++++inst¬E2ncia
Seria interessante implementar um controle onde eu salvasse em tempo real um campo com a quantidade de instâncias abertas na rede em uma tabela do banco de dados.
uso paradox, delphi 7
Quero implementar um controle para evitar que meus clientes instalem o sistema em mais máquinas que o combinado.
Levando em conta que o executavel está no servidor.
Já pesquisei mas nada resolveu meu problema.
http://forum.devmedia.com.br/viewtopic.php?t=3635&highlight=inst¬E2ncias+++sistema
http://forum.devmedia.com.br/viewtopic.php?t=51440&highlight=mais+++++inst¬E2ncia
Seria interessante implementar um controle onde eu salvasse em tempo real um campo com a quantidade de instâncias abertas na rede em uma tabela do banco de dados.
uso paradox, delphi 7
Lucas.corp
Curtir tópico
+ 0
Responder
Posts
24/06/2008
Ant.carlos/sp
Olá!
Caro amigo!
Já usei Paradox há muito tempo, mas tenho uma dica:
Veja se vc consegue pegar a lista de usuario q estão usando o banco de dados, faz a contagem e decida o q fazer.
Outra, vc pode cria um cadastro de terminais e verificar ao instanciar se o mesmo consta no cadastro.
veja + abaixo.
espero ter ajudado!
100+
ANT.CARLOS/SP
-------------------------
LISTA DE USUÁRIOS QUE ESTÃO ACESSANDO AS TABELAS
procedure GetUsers(UserList: TStrings);
var
TmpCursor : hDbiCur;
rslt :dbiResult;
UsrDesc : USERDesc;
begin
UserList.Clear;
Check(DbiOpenUserList(TmpCursor));
try
repeat
Rslt:= DbiGetNextRecord(TmpCursor, dbiNOLOCK, @UsrDesc, nil);
if Rslt <> DBIERR_EOF then
UserList.Add(UsrDesc.szUserName);
until Rslt <> DBIERR_NONE;
finally
Check(DbiCloseCursor(TmpCursor));
end;
end;
-------------------------
Caro amigo!
Já usei Paradox há muito tempo, mas tenho uma dica:
Veja se vc consegue pegar a lista de usuario q estão usando o banco de dados, faz a contagem e decida o q fazer.
Outra, vc pode cria um cadastro de terminais e verificar ao instanciar se o mesmo consta no cadastro.
veja + abaixo.
espero ter ajudado!
100+
ANT.CARLOS/SP
-------------------------
LISTA DE USUÁRIOS QUE ESTÃO ACESSANDO AS TABELAS
procedure GetUsers(UserList: TStrings);
var
TmpCursor : hDbiCur;
rslt :dbiResult;
UsrDesc : USERDesc;
begin
UserList.Clear;
Check(DbiOpenUserList(TmpCursor));
try
repeat
Rslt:= DbiGetNextRecord(TmpCursor, dbiNOLOCK, @UsrDesc, nil);
if Rslt <> DBIERR_EOF then
UserList.Add(UsrDesc.szUserName);
until Rslt <> DBIERR_NONE;
finally
Check(DbiCloseCursor(TmpCursor));
end;
end;
-------------------------
Responder
Clique aqui para fazer login e interagir na Comunidade :)