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
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 de belford
1