Respuesta: control de usuarios Hola Chelochos, voy a intentar darte una idea de como controlarlo.
Yo haría lo siguiente:
- Crearia una Variable con el Nº de usuarios máximos
- Crear en la base una tabla que se llame por ejemplo UsuariosActivos.
- Crear 1 campo que se llame Control y otro Usuario. (Con 2 basta), puedes ponerlos a tu antojo incluso para controlar la hora de acceso del usuario.
- En la parte del programa que uses para el inicio de la sesión metería una consulta a la base que te devuelva la cantidad de Registros que contiene la tabla.
Aqui el "formulario" o lo que uses para el inicio va a tener 2 funciones principalmente.
- Pillas la cantidad de registros que as consultado antes y le agregas 1, nada mas mostrar el loguin.
- Le metes la siguiente condición (CantidadUsuarios + 1) <= UsuariosMáximos si es afirmativo le dejas pasar. En el caso de que se pase de la cantidad permitida, le muestras un mensaje de que en estos momentos no puede conectarse y deshabilitas los botones.
- Cuando el usuario se loguea correctamente lo agregas a la tabla, para que asi el que venga "detras" a la hora de logearse ya tenga el control hecho.
- Para liberar a los usuarios, simplemente en la propiedad formclose o bien en el apartado que tengas para deslogearse, haces una consulta a la base quitando el usuario que se acaba de salir.
- Y Listo con eso ya puedes controlar cuantos tienes dentro y cuantos pueden entrar.
Sobre el número máximo de conexiones no se decirte, ya que depende de la potencia que tenga la máquina que este corriendo la base de datos, a mas gente mas carga y mas recursos consume, por lo que no te puedo dar un calculo aproximado. Ya que intervienen factores como la Memoria, el ancho de banda de red que tenga, el procesador, otros procesos abiertos, etc.....
Te dejo un Esquema de lo que seria la programacion:
- Consulta a la base, lo meto en UsuariosActuales
- Agrego a UsuariosActuales + 1
- Compruebo si UsuariosActuales es menor o igual a UsuariosMaximos
- Si es que SI
* Dejo entrar al usuario (Esta es la parte que tengas del Login, con su comprobacion de acceso y todo eso)
* Lo meto en la base de datos
- Si es que NO
* Bloqueo los botones para logear
* Muestro un aviso de que en estos momentos no se puede entrar que lo intente mas tarde. (Este aviso es para quedar bien) . Como no a entrado no se a agregado nada a la tabla asique siempre tendra el mismo valor.
- Al desconectarse o al cerrar el formulario, hago una consulta a la base de datos borrando el usuario, de la tabla. Asi se libera ese espacio para el siguiente.
Espero que hayas entendido la mecanica de como lo haría. |