Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Llaverola

Gerar um PDF? Duvidas numa sessão....

Recommended Posts

Llaverola

1ª duvida: Como gerar um PDF em ASP.NET C#?

2ªduvida: Eu tenho uma tabela login em q possui um campo chamado ESTADO. se esse campo esta a 1, significa que o utilizador esta on-line. Se o campo esta a ZERO significa que esta OFFLINE.

Qd clico em logout chamo uma query para actualizar o campo estado para ZERO. mas isso só acontece QD O UTILIZADOR CLICA EM LOUGOUT.

o problema é: Então e se o utilizador apenas clica na cruz DA JANELA LA EM CIMA, canto superior direito e fecha a janela sem clicar em LOGOUT? Como posso actualizar o campo da tabela?

Obrigado

Share this post


Link to post
Share on other sites
pmg

2ªduvida: não podes (*).

A minha sugestão é alterares essa coluna para ULTIMO_ACESSO (ou outro nome que gostes mais) e meteres lá a data/hora do último acesso.

Depois para veres os utilizadores "online", só precisas de seleccionar aqueles cujo ULTIMO_ACESSO tenha sido nos últimos 20 segundos (ou outro período de tempo, conforme o que consideres "estar online").

(*) As possíveis soluções que implicam o uso de JavaScript não são fiáveis.

Se um gajo vai ao teu site e deixa o computador ligado no teu site enquanto vai jantar, está "online" enquanto janta?


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
jpaulino

1ª duvida: A forma mais simples é criares um relatório em Crystal Report ou Microsoft Report File (*.rdlc). Existem muitos exemplo disponíveis.

2ª duvida: Concordo totalmente com o pmg e é assim que funciona esse sistema.

Share this post


Link to post
Share on other sites
Llaverola

Mas n percebi mt bem. Como verifico os ultimos 20 segundos e relaciono-os com os dados da base de dados?

Share this post


Link to post
Share on other sites
pmg

Em ANSI SQL tens CURRENT_TIMESTAMP: deve funcionar em qualquer base de dados (MSSQL, MySQL, Oracle, Postgresql, SQLite, ..., ...) (no Microsoft SQL Server podes usar getdate(), mas se algum dia tens que mudar a base de dados, o getdate() deixa de funcionar).

O CURRENT_TIMESTAMP, como o nome indica, dá-te a hora actual, isto é, a hora a que estás a correr o query.

Se calculares a diferença entre a hora actual e a hora do ULTIMO_ACESSO obtens o número de segundos desde o último acesso.

SELECT col1, col2, ..., colN FROM tabela /* JOINs */ WHERE CURRENT_TIMESTAMP - ULTIMO_ACESSO < 20 AND ...

Em princípio o query funciona em qualquer base de dados, mas só o experimentei em MySQL.

É claro que o tipo de dados da coluna ULTIMO_ACESSO tem de ser compatível com o CURRENT_TIMESTAMP!


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.