problema con transacciones
Publicado por alberto (278 intervenciones) el 06/08/2001 13:17:10
Tengo un programa que se conecta a una BD mediante:
ConexionADO.Open "Provider=SQLOLEDB.1; " & _
"Password=pwd; " & _
"Persist Security Info=True; " & _
"User ID=usuario; " & _
"Initial Catalog=miBD;"& _
"Data Source=servidor"
y todo va bién salvo que si se inicia una transacción y dentro de la transacción se mantienen abiertos dos recordsets se produce un error, es decir si se ejecuta el siguiente procedimiento:
Private Sub Prueba()
Dim R1 As New ADODB.Recordset, r2 As New ADODB.Recordset
Dim SentenciaSQL As String
ConexionADO.BeginTrans
SentenciaSQL = "select * from pedidos"
R1.Open SentenciaSQL, ConexionADO, adOpenForwardOnly, , adCmdText
SentenciaSQL = "select * from clientes"
r2.Open SentenciaSQL, ConexionADO, adOpenForwardOnly, , adCmdText
r2.Close
R1.Close
ConexionADO.CommitTrans
End Sub
el programa se detiene con el siguiente mensaje de error:
"Cannot create new connection because in manual or distributed transaction mode."
con numero: -2147467259
¿Alguien sabe a que es debido?
Gracias anticipadas.
ConexionADO.Open "Provider=SQLOLEDB.1; " & _
"Password=pwd; " & _
"Persist Security Info=True; " & _
"User ID=usuario; " & _
"Initial Catalog=miBD;"& _
"Data Source=servidor"
y todo va bién salvo que si se inicia una transacción y dentro de la transacción se mantienen abiertos dos recordsets se produce un error, es decir si se ejecuta el siguiente procedimiento:
Private Sub Prueba()
Dim R1 As New ADODB.Recordset, r2 As New ADODB.Recordset
Dim SentenciaSQL As String
ConexionADO.BeginTrans
SentenciaSQL = "select * from pedidos"
R1.Open SentenciaSQL, ConexionADO, adOpenForwardOnly, , adCmdText
SentenciaSQL = "select * from clientes"
r2.Open SentenciaSQL, ConexionADO, adOpenForwardOnly, , adCmdText
r2.Close
R1.Close
ConexionADO.CommitTrans
End Sub
el programa se detiene con el siguiente mensaje de error:
"Cannot create new connection because in manual or distributed transaction mode."
con numero: -2147467259
¿Alguien sabe a que es debido?
Gracias anticipadas.
Valora esta pregunta


0