Lectura de registros bloqueados por una transaccion

03/01/2006 - 13:57 por Juan Fran | Informe spam
Mi problema se da cuando tengo que actualizar un conjunto de registros
en una transaccion.
En mi aplicacion tengo establecida una transaccion en la capa de datos
(no es un procedimiento almacenado). En el proceso de actualizacion
necesito hacer una SELECT para actualizar o no cierto registro. El
problema lo tengo cuando hago una SELECT sobre un registro sobre el
cual he realizado una modificacion (UPDATE). En este caso recibo el
mensaje de que se ha agotado el tiempo de respuesta .
¿Es posible hacer lo que quiero hacer?. Es decir ¿puedo hacer una
SELECT para leer los registros que tengo bloqueados yo mismo ?

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
03/01/2006 - 14:09 | Informe spam
Supongo que cuando comentas que eres tú mismo el que tiene bloqueados
esos registros te refieres a la misma aplicación, pero probablemente no a la
misma conexión (si no fuera así, no existirían esos bloqueos).

Yo te recomendaría finalizar esa transacción que tienes abierta, porque
aunque puedas leer esos registros bloqueados (con la sugerencia de bloqueo
NOLOCK), los datos mostrados no son reales hasta que no se haga un COMMIT o
un ROLLBACK de dicha transacción.

La verdad es que no podemos ayudarte mucho porque nos faltan datos. Yo
que tú me plantearía las siguientes preguntas:

- ¿es necesario tener abierta esa transacción tanto tiempo?
- ¿por qué le vas a mostrar al usuario datos que pueden cambiar?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Fran" escribió en el mensaje
news:
Mi problema se da cuando tengo que actualizar un conjunto de registros
en una transaccion.
En mi aplicacion tengo establecida una transaccion en la capa de datos
(no es un procedimiento almacenado). En el proceso de actualizacion
necesito hacer una SELECT para actualizar o no cierto registro. El
problema lo tengo cuando hago una SELECT sobre un registro sobre el
cual he realizado una modificacion (UPDATE). En este caso recibo el
mensaje de que se ha agotado el tiempo de respuesta .
¿Es posible hacer lo que quiero hacer?. Es decir ¿puedo hacer una
SELECT para leer los registros que tengo bloqueados yo mismo ?
Respuesta Responder a este mensaje
#2 Juan Fran
03/01/2006 - 17:13 | Informe spam
Gracias. Si me habeis ayudado mucho, aun siendo poco claro en la
exposición de mi problema. El error que estaba cometiendo se producia
cuando dentro del proceso de la transaccion utilizaba una funcion para
realizar una SELECT y esa select la hacia sobre una conexion nueva. No
lo habia visto muy claro pq las consultas las realizo a traves de las
funciones del SQLHelper y estaba utilizando una sobrecarga de un
Executedataset con la cadena de conexion como parametro en lugar de
utilizar una sobracarga en la cual utilice una conexion como parametro.
Muchas gracias por todo , me has sido de gran ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida