Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2008
Avatar de Lucciano
Lucciano Lucciano is offline
Miembro
 
Registrado: abr 2006
Posts: 33
Poder: 0
Lucciano Va por buen camino
Question Programa multiusuario, y que pasa si se corta la luz?

Hola amigos como andan? El otro dia se me planteo un problema y no logro resolverlo.

Problema:
  • Como es posible administrar una aplicacion multiusuario, evitando que el mismo usuario habra mas de una sesion del programa en maquinas distintas?
  • Si el usuario esta logueado correctamente y se corta la luz como haria para logearse de nuevo (si es que la solucion fue manejar los accesos por medio de una tabla de la BD).
Espero que me ayuden con ideas o con el metodo correcto para este tipo de aplicaciones. Saludos!!

__________________
No todo es la maravilla de japon!.
Responder Con Cita
  #2  
Antiguo 12-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Supongo que el programa tendrá un archivo de configuración por ahí... en ese caso, añade un registro llamado "CerrarCorrectamente" o algo así. Que por defecto almacene un valor booleano en "true" (correcto, vamos). Que al cargar el programa lo tone "false" y lo guarde, y que no se ponga otra vez en true hasta que el programa se vaya a cerrar definitivamente (pero vamos, que sea lo último que ejecute antes de Close o Terminate).
Eso te servirá para saber si se fue la luz (o si el proceso ha sido cerrado por arte de magia, por si se produjo un error...); ya, saber qué usuario estaba es cuestión de que se guarde también en ese fichero de configuración. "ÚltimoUsuario" o algo así, para que te entiendas.

Espero que te sirva de ayuda.


Salu2.
Responder Con Cita
  #3  
Antiguo 12-02-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 21
JXJ Va por buen camino
hazle como el messenger.

a mi me ha pasado que dejo. el messenger activo con mi cuenta. jxj@hotmail.com

y voy al ciber de mi amigo, y abro el messenger en una de sus pcs. e inicio sesión
con mi cuenta jxj@hotmail.com
y solo se mantiene activo el ultimo messenger.
Responder Con Cita
  #4  
Antiguo 12-02-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo tengo un fichero de usuarios con un campo booleano para cada usuario en donde figura si está conectado o no.

Cada vez que intenta entrar en el sistema se comprueba usuario y contraseña y también si ya está conectado, si está conectado no se le deja entrar.

Solamente el que se conecta como administrador tiene la posibilidad de ver este fichero y marcar a alguién como desconectado si por algún fallo quedó en esa situación y por lo tanto no puede entrar al sistema.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 12-02-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Yo lo hago de la siguiente manera:

Cada que un usuario entra creo un registro de entrada, más o menos así: Login (fecha de entrada) - Logout (null) - PCName (nombre del equipo desde el cual ingresa)...

Cuando el usuario cierra la aplicación, establesco el valor de Logout, con eso ya se si el usuario cerró bien la aplicación.

De esta forma puedo saber si un usuario está activo y por medio de otros permisos puedo permitirle tener más de una sesión o no. Obviamente el Admin puede tener más de una sesión activa...

Cuando la aplicación falla y el usuario quiere entrar desde el mismo equipo, el sistema detecta esto y le permite entrar cerrando la sesión que quedó abierta...

Si la última sesión abierta tiene más de un día, hace el mismo procedimiento y deja que el usuario ingrese a la aplicación...

Esto hasta ahora me ha dado buenos resultados...



Saludos...
Responder Con Cita
  #6  
Antiguo 13-02-2008
Avatar de Lucciano
Lucciano Lucciano is offline
Miembro
 
Registrado: abr 2006
Posts: 33
Poder: 0
Lucciano Va por buen camino
Wink

Gracias amigos por sus opiniones y consejos, les cuento que estuve probando de hacerlo mediante el siguiente trigger.

Código SQL [-]
CREATE OR REPLACE TRIGGER CISA.TRG_LOGOFF
BEFORE LOGOFF
ON DATABASE
BEGIN
  DELETE FROM TACCESOS WHERE SID_NUMBER = sys_context('userenv','ip_address');
END;

Funciona a medias, ya que si se habre cualquier otra aplicacion de la misma maquina y crea otra instancia en la BD, al cerrar esta aplicacion hace que se me borre el registro para la cual lo estoy creando. Tendria que ponerle un IF <nombre aplicacion > para controlarlo pero todavia no he encontrado nada de como obtener los nombres de los programas que estan conectados a la BD sin ser el administrador de la BD. Gracias por todo!! Saludos!!.
__________________
No todo es la maravilla de japon!.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lo que pasa cuando un sistema se diseña, programa y libera mal. AzidRain La Taberna 12 08-12-2007 18:29:47
Se corta la conexion con la BD Firebird tulio Firebird e Interbase 7 01-08-2007 13:25:09
Premio novela corta Investment Humor 2 24-02-2005 15:23:14


La franja horaria es GMT +2. Ahora son las 08:58:27.


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