Programación Multiusuario

Hola, Necesito ayuda en la programación multiusuario (o cliente/servidor, no sé como describirla mejor).
Hasta ahora he hecho muchos programas monousuario con tablas Access, pero me planteo el problema de hacer uno bastante gordo que sea multiusuario. He estado mirando por ahí y todo el mundo habla de los bloqueos, pero ese no es mi problema.
Imaginate que el usuario1 va a hacer una factura, el programa le propone el código 0003 (ya que la última que encuentra es la 0002), pero en ese mismo instante el usuario2 también va a hacer una factura.. Igualmente el programa le propone la 0003 (todavía ninguno de los dos ha confirmado la factura)
Hasta aquí, no hay problema si los dos les dan al botón de AceptarFactura en distintos tiempos, ya que a última hora se puede confirmar que ese código no exista... Pero resulta que si lo hacen casi al instante, ese última confirmación puede fallar y provocar un error de indices duplicados.
<confirmacion no existe duplicidad>
<guardar factura>
Si los dos en el mismo momento confirman que no existen duplicidad, los dos intentan guardarla al mismo tiempo... Esto pasa, lo tengo comprobado, pero es cierto que pasa si los dos lo hacen de forma sincronizada. Se que puede pasar pocas veces, pero en un entorno de 50 usuarios haciendo facturas todos a la vez es más probable.
¿Qué solución se le da a estas cosas? Cambiar de BD... ¿pasar a SQL Server? ¿En qué interviene SQL Server en estos aspectos? Ando perdido, la verdad. Gracias de antemano

1 Respuesta

Respuesta
1
Te recomiendo sql server, la capacidad de soportar a una cantidad ilimitada de usuarios trabajando al mismo tiempo es increíble y lo rapido que pude llegar hacer con un buen modelo de datos.
Bueno tu pregunta sql no trabaja con todos al mismo tiempo lo que hacer una fila de usuario.
Entra un usuario y hasta que este no salga no entra el otro y así sucesivamente, claro que este procecso es demasiado rapio por ende no se nota.
Cualquier duda no dudes en consultarme
Suerte !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas