Tabla bloqueada dentr de un atransaccion

29/01/2009 - 23:20 por Saga | Informe spam
Saludos!

Estoy usando VB6 SP5, ADO 2.7 y SQL Server 2000

Tengo una rutina semejante a los siguiente

Conecto al servidor

Begin transaccion

Borro registros de una tabla (DBConx.Execute SQL)

Borro registros de otra tabla (DBConx.Execute SQL)

Inserto registros nuevos en las tablas

Commit transaccion


El problema es que cuando se ejecuta (por decirlo asi) el primer DELETE para borrar
los registros la tabla se bloquea (locked), no dejando que otros usuarios entren a
areas especificas de la aplicacion que usa esa misma tabla. La tabla se desbloquea
cuando se ejecuta el "commit transaccion".

Estoy usando los metods BeginTrans y CommitTrans del objecto de conexion.

Probe abriendo la conexion al servidor usando ambos tipos de cursores: UseClient
y UseServer, pero el comportamiento es igual.

Este comportamiento es igual si uso ADO o RDO. Estoy buscando en Google,
pero hasta ahora no he encontrado anda. Alguien tendra experiencia con esto
para que me pueda orientar? Gracias! Saga

Soluciones Para Mejorar
www.reset.com.mx
 

Leer las respuestas

#1 Jose Mariano Alvarez
30/01/2009 - 03:46 | Informe spam
Debes borrar menos registros por vez y acceder por índices para que el resto
no se vea afectado.


Saludos


Ing. Jose Mariano Alvarez
SQLTotal Consulting

(Cambia los ceros por O y saca lo que sobra)

Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase. Por
favor tratar de indicar la versión de SQL y Service Pack. La inclusión de
(CREATE, INSERTS, etc.) para poder reproducir el problema también ayuda.










"Saga" wrote in message
news:uuZeP$
Saludos!

Estoy usando VB6 SP5, ADO 2.7 y SQL Server 2000

Tengo una rutina semejante a los siguiente

Conecto al servidor

Begin transaccion

Borro registros de una tabla (DBConx.Execute SQL)

Borro registros de otra tabla (DBConx.Execute SQL)

Inserto registros nuevos en las tablas

Commit transaccion


El problema es que cuando se ejecuta (por decirlo asi) el primer DELETE
para borrar
los registros la tabla se bloquea (locked), no dejando que otros usuarios
entren a
areas especificas de la aplicacion que usa esa misma tabla. La tabla se
desbloquea
cuando se ejecuta el "commit transaccion".

Estoy usando los metods BeginTrans y CommitTrans del objecto de conexion.

Probe abriendo la conexion al servidor usando ambos tipos de cursores:
UseClient
y UseServer, pero el comportamiento es igual.

Este comportamiento es igual si uso ADO o RDO. Estoy buscando en Google,
pero hasta ahora no he encontrado anda. Alguien tendra experiencia con
esto
para que me pueda orientar? Gracias! Saga

Soluciones Para Mejorar
www.reset.com.mx


Preguntas similares