Saludos a todos.
Me he encontrado con un asunto que no se como mejorar tanto en código como rápides y seguridad de datos.
Expongo:
En un sistema donde aprox. hay 40 usuarios trabajando con el sistema de refacciones para autos, se elaboran: compras, ventas, ajustes, traspasos y ordenes de servicio. Todos los procesos verifican existencias y dan salida y entradas al kardex del inventario.
El problema que tengo es como validar eficaz el bloqueo y desbloqueo de registros en los archivos involucrados en cada transaccion. Lo que hago en mi programa a grandes rasgos es:
1. Para la afectacion de una compra o venta con mas de 200 registros o numeros de parte primero
- verifico que exista la pieza en el catalogo de articulos
- bloqueo cada registro en el catalogo para su afectacion posterior y reservar en salidas de inventario que no modifiquen mi existencia en kardex.
2. si para la fase 1, actualizo existencias de todo el movimiento en el catalogo y kardex, si no pasa, no afecto nada
3. hago al final un dbunlockall() y dbcommitall()
El problema: si un usuario desea realizar otro procesos de salida o entrada con numeros de parte que bienen en la compra mencionada, le indicara el sistema que la pieza esta bloqueada por otro usuario y no pasará con la pieza.
Considerando el numero de usuarios y la lentitud que puede en su momento tener el sistema por las transacciones del mismo en el servidor esto representa un inconveniente para el buen desempeño del sistema.
Habra un metodo eficaz para realizar este timo de movimientos en sistema.