Access - concurrencia y bloqueo de registros

 
Vista:

concurrencia y bloqueo de registros

Publicado por March (1 intervención) el 02/05/2007 20:25:52
Buenas,
tengo una aplicación en access 2000 que la acceden 4 usuarios y necesito asignarle consecutivos a los formularios que se imprimen (ese no es el problema), necesito ver còmo puedo hacer para que me bloquee si un usuario "x" està utilizando un número de consecutivo y otra persona a la vez debería de tomar el consecutivo siguiente y no el mismo....

Muchas gracias por su ayuda!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Bloquear números de consecutivo para usuarios concurrentes

Publicado por Alejandro (4142 intervenciones) el 09/08/2023 22:43:52
Para evitar que dos usuarios tomen el mismo número de consecutivo al mismo tiempo en tu aplicación de Access, puedes utilizar una combinación de estrategias de bloqueo y control de concurrencia. Aquí hay un enfoque que podrías considerar:

1. Agregar un campo "Bloqueado" a la tabla de números de consecutivo:

Agrega un campo llamado "Bloqueado" a la tabla donde almacenas los números de consecutivo. Este campo puede ser un campo Sí/No (Booleano) que indique si un número está bloqueado para su uso.

2. Crear una tabla de bloqueo:

Crea una nueva tabla llamada "BloqueoConsecutivos" que tenga al menos los siguientes campos:
- ID (clave primaria)
- Usuario (nombre del usuario que bloquea el número)
- Consecutivo (número de consecutivo bloqueado)
- FechaBloqueo (marca de tiempo del bloqueo)

3. Implementar el bloqueo y control de concurrencia:

Cuando un usuario desea tomar un número de consecutivo, realiza los siguientes pasos:

- Comprueba si el número de consecutivo está marcado como "Bloqueado" en la tabla de números de consecutivo.
- Si no está bloqueado, marca el número como "Bloqueado" y agrega un registro en la tabla "BloqueoConsecutivos" con la información del usuario, número de consecutivo y fecha de bloqueo.
- Si el número está bloqueado, muestra un mensaje al usuario informando que el número ya está en uso.

4. Desbloquear números de consecutivo:

Implementa una rutina que desbloquee automáticamente los números de consecutivo después de un tiempo determinado (por ejemplo, después de cierto período de inactividad o al finalizar un proceso).

5. Manejar errores y excepciones:

Asegúrate de manejar posibles errores y excepciones, como cuando un usuario bloqueado no completa el proceso y el número de consecutivo queda bloqueado. Implementa una lógica para liberar automáticamente los bloqueos no utilizados.

Es importante señalar que este enfoque puede requerir un manejo cuidadoso y pruebas para garantizar que los números de consecutivo no se queden bloqueados accidentalmente y para evitar conflictos de concurrencia. Además, ten en cuenta que este es un enfoque de control de concurrencia a nivel de aplicación, y no a nivel de base de datos. Si tu aplicación requiere un control de concurrencia más avanzado, podrías considerar opciones de bases de datos más robustas o implementar un sistema de control de versiones.

Antes de implementar cambios significativos en tu base de datos, es recomendable realizar pruebas exhaustivas en un entorno controlado y hacer una copia de seguridad de tus datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar