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
Code: Select all | Expand
SELECT ......
Un usuario selecciona una tarea para consultar.
Code: Select all | Expand
SELECT ... FOR id=xxx
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.
Code: Select all | Expand
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
Code: Select all | Expand
COMMIT
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