Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Llaverola

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

Mensagens Recomendadas

Llaverola    0
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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
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!

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade