Un saludo a todos
La question es que me planteo si lo que estoy haciendo es correcto o tendré problemas futuros,
Estoy haciendo pruebas en SQL y tengo programado el proceso de concurrencia como sigue:
1 Muestro en un browse una serie de tareas para realizar
Un usuario selecciona una tarea para consultar.
El usuario intenta seleccionar la tarea para realizar (actualizacion). En este momento necesito asegurarme que otro usuario no intente "actualización" modificar esta misma tarea.
5 El usuario finaliza la actualización de la tarea, ya sea grabando, cancelando o por timeout
Bien, el proceso se ejecuta correctamente y si otro usario intenta acceder al mismo registro se produce un error que puedo controlar.
¿Es esta la forma correcta de realizarlo o debería plantearme otras alternativas (tablas de bloqueos,...) ?
Un saludo y gracias por vuestra atención
La question es que me planteo si lo que estoy haciendo es correcto o tendré problemas futuros,
Estoy haciendo pruebas en SQL y tengo programado el proceso de concurrencia como sigue:
1 Muestro en un browse una serie de tareas para realizar
SELECT ......Un usuario selecciona una tarea para consultar.
SELECT ... FOR id=xxxEl usuario intenta seleccionar la tarea para realizar (actualizacion). En este momento necesito asegurarme que otro usuario no intente "actualización" modificar esta misma tarea.
START TRANSACTION...
SELECT .... FOR Id=xxx FOR UPDATE
Vuelvo a presentar los datos (por si se modificaron desde otro terminal)5 El usuario finaliza la actualización de la tarea, ya sea grabando, cancelando o por timeout
COMMITBien, el proceso se ejecuta correctamente y si otro usario intenta acceder al mismo registro se produce un error que puedo controlar.
¿Es esta la forma correcta de realizarlo o debería plantearme otras alternativas (tablas de bloqueos,...) ?
Un saludo y gracias por vuestra atención