Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-04-2005
android_beat android_beat is offline
Miembro
 
Registrado: may 2003
Ubicación: morelia michoacan mexico
Posts: 40
Poder: 0
android_beat Va por buen camino
Unhappy Gran problema con un log de usuarios

Tengo una gran duda estoy en el desarollo de varios sistemas los cuales se usan en diferentes sitios de una empresa pero tengo que estar monitoreando cuales usuarios estan conectados y con que sistema puedo hacer una tabla en sql que me registre el log de usuarios que de ya esta pero hay un problema tengo los campos en la tabla id_usuario,hora_in,hora_out,status

id_usuario = No de Usuario
hora_in = hora de acceso al sistema
hora_out = hora de salida del sistema
status = A(Usuario Activo) D (Desconectado)


id_usuario,hora_in ya estan no hay ningun problema pero en hora_out si por esta razon

puedo llenar el campo de hora_out cuando salgan del sistema pero hay un problema si se corta la energia de la pc del usuario o desconectan esa pc de red o x causa como capturare ese campo y cambiar el status.

de ante mano les agradesco si me pueden ayudar
__________________
La programación llena mi vida como lo hace la música electrónica
Responder Con Cita
  #2  
Antiguo 08-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Te describo lo que hice en una situación parecida.

A tu tabla de conexiones le agregas un campo: ultimo_acceso. Cada aplicación cliente actualiza cada cierto tiempo, digamos cinco segundos, este campo con la hora actual. La aplicación monitora, se fija en el valor de este campo y lo compara con la hora actual. Si la diferencia es mayor de cinco segundos y su estátus marca como activo al usuario correspondiente, querrá decir que tal usuario sufrió una desconexión involuntaria puesto que de otra forma la aplicación cliente ya habría actualizado el campo o, en caso de haber terminado normalmente, ya no estaría marcado como activo.

En esta situación, la aplicación monitora considera que el usuario ya no está activo y cierra su sesión cambiando el campo status y fijando la hora de salida al último acceso o la hora actual.

Claro que para estos casos tendrás una imprecisión en la hora de salida de unos segundos pero normalmente esto no es vital.

// Saludos
Responder Con Cita
  #3  
Antiguo 08-04-2005
android_beat android_beat is offline
Miembro
 
Registrado: may 2003
Ubicación: morelia michoacan mexico
Posts: 40
Poder: 0
android_beat Va por buen camino
Talking Mas problemas

es buena de hecho si la abia pensado pero mira hay cientos de rasones por lo cual no me funciona asi usuario deja abierto el sistema duarante horas sin hacer cambios en registros necesito medir eso para medir eficiencia laboral otra es que si los saco de la secion forsadamente podria perder datos que esten modificando y aun no den el comit.

pensaba en una aplicasion como esta una aplicasion server y que el cliente se conecte a ella mandandole el id de la sesion que en este caso es el id_log y conectarlo mediante socket como en un chat al desconectarse el aplicativo server marque el estatis d y la hora de salida.

pero hay otr pequeño problema no he usado mucho socket otra tengo el delphi 7 y no veo por ningun lado la pestaña para usar socket

perdona tal ves soy muy molesto pero tu sabras cundo estas programando puedes ser el mejor pero al probar tu sistema tienes que ponerte como la persona mas tonta del mundo para descubrir errorer y picarle a todo para que despues no existan reclamos por los sistemas.
__________________
La programación llena mi vida como lo hace la música electrónica
Responder Con Cita
  #4  
Antiguo 08-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por android_beat
si usuario deja abierto el sistema duarante horas sin hacer cambios en registros necesito medir eso para medir eficiencia laboral otra es que si los saco de la secion forsadamente podria perder datos que esten modificando y aun no den el comit.
No me gustaría trabajar en tu empresa

Pero no veo que haya problema. El campo ultimo_acceso es sólo para saber si la aplicación está respondiendo; usa otro campo- también actualizable cada tanto tiempo -para marcar la última vez que se editó algún registro.

Por otro lado tú no los vas a sacar forzadamente. Por "cerrar su sesión" me refería a que la aplicación monitora hace las modificaciones pertinentes en la tabla de conexiones. Pero si detecta que han pasado más de cinco segundos desde la última actualización (de la aplicación, no del trabajo realizado) es porque se desconectó la red o la aplicación cliente se cayó en cuyo caso de cualquier forma falló cualquier transacción pendiente.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:09:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi