George, obrigado pela resposta mas já pensei nesta dia lógica, mas o problema seria o seguinte:
Por algum motivo o usuário é desconectado:
   A máquina pode travar.
   O usuário pode desligar a máquina no botão
   A conexão com o servidor pode cair ( internet )
   Ou seja, a aplicação terminar de forma anormal

Nestes casos, a tebela continuaria como se ele estivesse conectado e obviamente seria interpetado como login em uso.

Se houver uma desconexão anormal o PG controla isso pra mim muito bem !

Grato.


George Silva escreveu:
Acredito que você resolver pela aplicação.

Assim que um usuário abrir a aplicação, insira o nome dele e tempo de conexão em uma tabela.

No momento de pedir o close da aplicação, apague o nome do usuário na tabela.

Entre os dois eventos, teste se o usuário já está conectado. (Quando ele tentar logar denovo em outra máquina) O registro vai ser encontrado e você bloqueia o login com este user (volta para a tela de login). Caso não exista um registro nesta tabela, ele loga.

Não sei se consegui explicar o que quero dizer.

Mas veja aí, e tenho certeza que otras pessoas podem te dar mais uma "luz", não sou nem de perto expert no assunto.

Abraço

George


marco escreveu:
Pessal estou com o seguinte dilema:
Tenho alguns cliente que me pedem para que cada usuário se conecte ao sistema em uma máquina por vez. Para resolver o problema, criei os usuários da minha app como usuários do PG pois desta forma quando um usuário tentar efetuar o login na app, ela pergunta ao PG se o usuário já está logado, se não estiver logado a entrada no sistema continua (a conexão fica aberta até a app ser finalizada) caso contrário e entrada é barrada e ele é avisado que seu login está aberto em outra máquina. mas recentemente venho estudando o C# e tenho notado que ninguem utiliza uma conexão permanente ao banco de dados. todos tem seus ótimos argumentos.

Gostaria de saber a opinião de vocês:
Pensando no controle que preciso, é arriscado manter uma conexão permanente com o banco ?

Se este procedimento for ruim e o melhor for o que o mundo c# diz: Conecte, pegue o que quer e desconecte. Como fariamos para manter o controle em que o usuário só possa ficar conectado em uma máquina.

Não sei se fui claro mas ficaria muujuuuito grato em ler o parecer de vocês

Obrigado.
--
        *Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br

------------------------------------------------------------------------

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
------------------------------------------------------------------------

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
------------------------------------------------------------------------


Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - http://www.avgbrasil.com.br Versão: 8.0.197 / Banco de dados de vírus: 270.10.6/1888 - Data de Lançamento: 12/1/2009 07:04


--
        *Marco Antonio J. Victor*
Fone/Fax: *11 2977-5406*
www.tactor.com.br

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a