transacciones

22/02/2006 - 18:49 por Oscar | Informe spam
Hola

Llevo ya tiempo planteando esta pregunta en el foro, y me estoy volviendo
loco porque no encuentro la solución.

Como puedo crear un bloqueo desde vb .net a sql server 2000, de tal forma
que me bloquee únicamente en sólo escritura las lineas afectadas por la
transacción. Lo he intentado con todos los IsolationLevel de transaccion en
vb .net, pero sigue haciendo un bloqueo exclusivo, tanto de lectura como de
escritura. Tambien lo he intentado con WITH (ROWLOCK) en la sentencia
UPDATE, pero tampoco. El caso es que cuando ejecuto cualquier sentencia
update o insert desde la transacción, me bloquea toda la tabla, es decir, si
me voy al sql e intento abrir la tabla, no me deja..
COMO ES POSIBLE QUE NO EXISTA UN BLOQUEO POR REGISTRO???

Saludos, Oscar
 

Leer las respuestas

#1 Isaias
22/02/2006 - 19:03 | Informe spam
No es un bloqueo de TODA la tabla, es un bloque de un BLOQUE de paginas.

En mi caso, si deseo bloquear un SOLO REGISTRO, coloco un campo bit, cada
que un usuario (tengo 500 usuarios simultaneos), toma un registro, lo
actualizo en 1, cada que el usuario "lo suelta", lo actualizo en 0 (cero).

Si se rompe la conexion, valido primero (antes de tomar el registro), si el
usuario tiene registros "tomados", de ser cierto, le regreso dicho registro.

Hasta hoy, no he tenido problemas de DEAD LOCK
Saludos
IIslas


"Oscar" escribió:

Hola

Llevo ya tiempo planteando esta pregunta en el foro, y me estoy volviendo
loco porque no encuentro la solución.

Como puedo crear un bloqueo desde vb .net a sql server 2000, de tal forma
que me bloquee únicamente en sólo escritura las lineas afectadas por la
transacción. Lo he intentado con todos los IsolationLevel de transaccion en
vb .net, pero sigue haciendo un bloqueo exclusivo, tanto de lectura como de
escritura. Tambien lo he intentado con WITH (ROWLOCK) en la sentencia
UPDATE, pero tampoco. El caso es que cuando ejecuto cualquier sentencia
update o insert desde la transacción, me bloquea toda la tabla, es decir, si
me voy al sql e intento abrir la tabla, no me deja..
COMO ES POSIBLE QUE NO EXISTA UN BLOQUEO POR REGISTRO???

Saludos, Oscar



Preguntas similares