como saber en un for each que un registro esta bloqueado para avisar al usuario
Publicado por Marietta (56 intervenciones) el 25/06/2014 20:54:26
Hola.
Espero que alguien pueda ayudarme con esto o darme ideas.
Tengo un procedimiento de grabacion, llamado por una ventana (aca trabajamos distribuido), el problema que tengo es que en mi programa de grabacion se actualizan mediante for each todos los registros de una tabla que cumplan la condicion. El usuario al presionar boton de grabación, en la ventana, va al procedimeinto para grabar, y cuando el registro esta siendo usado por otro usuario, se cuelga, hasta que el otro usuario suelta el registro sigue con la grabacion. El problema es que el usuario que quiere grabar no tiene idea de que pasa, apretan teclas una y otra vez, botan el programa, y obviamente ahi en las tablas queda algo mal, ¿como le indico al usuario que el registro esta bloqueado por otro usuario?. La idea es salirme del procedimiento sin que haga nada, (ya que hay otras actualizaciones a otras tablas despues), y darle aviso al usuario que el registro esta siendo usado por otro usuario, si puedo indicar por cual mejor aun, e indicarle que intente mas tarde.
Esto lo hacemos con un locked en los find, sin ningun problema, pero hasta donde se, el locked no se puede usar con el for each.
Nota: el programa de grabacion, tiene un do transaction, pero como no es problema de transaccion segun mi entender no hace nada en este caso, el tema es el bloqueo.
De ante manos Gracias
Espero que alguien pueda ayudarme con esto o darme ideas.
Tengo un procedimiento de grabacion, llamado por una ventana (aca trabajamos distribuido), el problema que tengo es que en mi programa de grabacion se actualizan mediante for each todos los registros de una tabla que cumplan la condicion. El usuario al presionar boton de grabación, en la ventana, va al procedimeinto para grabar, y cuando el registro esta siendo usado por otro usuario, se cuelga, hasta que el otro usuario suelta el registro sigue con la grabacion. El problema es que el usuario que quiere grabar no tiene idea de que pasa, apretan teclas una y otra vez, botan el programa, y obviamente ahi en las tablas queda algo mal, ¿como le indico al usuario que el registro esta bloqueado por otro usuario?. La idea es salirme del procedimiento sin que haga nada, (ya que hay otras actualizaciones a otras tablas despues), y darle aviso al usuario que el registro esta siendo usado por otro usuario, si puedo indicar por cual mejor aun, e indicarle que intente mas tarde.
Esto lo hacemos con un locked en los find, sin ningun problema, pero hasta donde se, el locked no se puede usar con el for each.
Nota: el programa de grabacion, tiene un do transaction, pero como no es problema de transaccion segun mi entender no hace nada en este caso, el tema es el bloqueo.
De ante manos Gracias
Valora esta pregunta
0