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

Llaverola

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

5 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora