Problema con trasacciones en SQL server 2000

15/07/2004 - 20:09 por Carlos | Informe spam
Hola

Tengo un problema con las transaciones en SQL server 2000
Yo manejo las transacciones haciendo:
objConexionADO.Execute("BEGIN TRANSACTION")
lo tengo que hacer de esta manera porque el ADO no admite
transacciones anidadas con sql server.
dentro de la transaccion que inicie abro un recordset
para traer registros de una tabla, el problema es que
antes de hacer el open el numero de transacciones es 1 y
despues de hacerlo pasa a 0, esto no me permite hacer el
commit de la transaccion iniciada anteriormente.

¿Alguien tiene idea de que puede estar generando esto, ya
probe abrir el recordset de todas maneras y me hace lo
mismo?.

GRACIAS
 

Leer las respuestas

#1 Miguel Egea
15/07/2004 - 23:32 | Informe spam
Puedes mirar con profiler, excepto que tengas por defecto set implicit
transaction on o algo así no veo porqué, de hecho he probado (desde Word,
por que ya no tengo VB 6 instalado) y este código hace lo que esperaba, es
decir hace bien el tema de transacciones.

Dim x As ADODB.Connection
Dim r As ADODB.Recordset

Public Sub try()
Set x = New ADODB.Connection
x.Open ("Provider =SQLOLEDB;Data Source=.;iNTEGRATED sECURITY=sspi")
x.Execute ("BEGIN Tran")
x.Execute ("BEGIN Tran")
Set r = x.Execute("Select @@trancount")
MsgBox (" el numero de transacciones es " & r(0))
x.Execute ("commit Tran")
Set r = x.Execute("Select @@trancount")
MsgBox (" el numero de transacciones es " & r(0))
x.Execute ("commit Tran")

x.Close

End Sub

Saludos

-

Miguel Egea Gómez
Webmaster de PortalSQL

(lo de online sobra)
Brigada Anti-Cursores
Microsoft SqlServer M.V.P.

"Carlos" escribió en el mensaje
news:2db0501c46a96$e5ad6040$
Hola

Tengo un problema con las transaciones en SQL server 2000
Yo manejo las transacciones haciendo:
objConexionADO.Execute("BEGIN TRANSACTION")
lo tengo que hacer de esta manera porque el ADO no admite
transacciones anidadas con sql server.
dentro de la transaccion que inicie abro un recordset
para traer registros de una tabla, el problema es que
antes de hacer el open el numero de transacciones es 1 y
despues de hacerlo pasa a 0, esto no me permite hacer el
commit de la transaccion iniciada anteriormente.

¿Alguien tiene idea de que puede estar generando esto, ya
probe abrir el recordset de todas maneras y me hace lo
mismo?.

GRACIAS

Preguntas similares