sql no reconoce datos previamente grabados en un registro
Publicado por juan manuel ortiz (2 intervenciones) el 06/08/2018 20:08:17
El caso es que tengo una base de datos, en la que todos los procesos de añadir, editar y eliminar se hacen mediante procedimientos almacenados.
en una tabla se controlan los procesos que los usuarios van realizando, cada proceso solo puede ser realizado por un usuario, cuando el usuario lo ha finalizado, se edita el registro de procesos para marcarlo como realizado y luego se genera en otro registro en la tabla que controla el trabajo realizado por cada usuario.
El problema es el siguiente, a veces, pese a que un usuario ha marcado un proceso como realizado, la bd permite a otro usuario volver a marcarlo como realizado, generándose 2 registros de trabajo realizado sobre el mismo proceso.
Por que pienso que el problema es en la base de datos, pues porque el procedimiento que controla la edicion de la tabla de procesos, antes de editar comprueba que no se ha modificado el valor del campo procesado, y comprueba tambien que en la tabla de trabajos no exista un trabajo para ese id_proceso, y aun asi, ocurre en situaciones puntuales que pese a esos dos controles, el procedimiento almacenado se ejecuta ignorando que el campo se modifico previamente e ignorando que ya existe un registro previo en la tabla de trabajos realizados ...
alguna idea de porque ocurre esto ??
siempre me ha ocurrido en sql server 2008, hace poco probe en un sql server 2012, en una de las oficinas que usan el sistema, y también ocurre puntualmente, siempre en momentos en que hay bastantes usuarios conectados al mismo tiempo
si alguien tiene alguna idea/explicacion le estaria eternamente agradecido
en una tabla se controlan los procesos que los usuarios van realizando, cada proceso solo puede ser realizado por un usuario, cuando el usuario lo ha finalizado, se edita el registro de procesos para marcarlo como realizado y luego se genera en otro registro en la tabla que controla el trabajo realizado por cada usuario.
El problema es el siguiente, a veces, pese a que un usuario ha marcado un proceso como realizado, la bd permite a otro usuario volver a marcarlo como realizado, generándose 2 registros de trabajo realizado sobre el mismo proceso.
Por que pienso que el problema es en la base de datos, pues porque el procedimiento que controla la edicion de la tabla de procesos, antes de editar comprueba que no se ha modificado el valor del campo procesado, y comprueba tambien que en la tabla de trabajos no exista un trabajo para ese id_proceso, y aun asi, ocurre en situaciones puntuales que pese a esos dos controles, el procedimiento almacenado se ejecuta ignorando que el campo se modifico previamente e ignorando que ya existe un registro previo en la tabla de trabajos realizados ...
alguna idea de porque ocurre esto ??
siempre me ha ocurrido en sql server 2008, hace poco probe en un sql server 2012, en una de las oficinas que usan el sistema, y también ocurre puntualmente, siempre en momentos en que hay bastantes usuarios conectados al mismo tiempo
si alguien tiene alguna idea/explicacion le estaria eternamente agradecido
Valora esta pregunta


0