在事务中做了两个连接,报错是“不能在手动或分布事务方式下创建新的连接。”,请问:
1.具体的原因是什么?
2.怎么解决?语句如下:
Dim rd As New ADODB.Recordset
Dim rd1 As New ADODB.Recordset
cnDB.BeginTrans
sSql = "select sum(Quantity) as sum1 FROM Orders a INNER JOIN [order details] b ON a.OrderID=b.orderID "
rd.Open sSql, cnDB, adOpenDynamic, adLockReadOnly
sSql = "select * from [order details] "
rd1.Open sSql, cnDB, adOpenDynamic, adLockReadOnly cnDB.CommitTrans
1.具体的原因是什么?
2.怎么解决?语句如下:
Dim rd As New ADODB.Recordset
Dim rd1 As New ADODB.Recordset
cnDB.BeginTrans
sSql = "select sum(Quantity) as sum1 FROM Orders a INNER JOIN [order details] b ON a.OrderID=b.orderID "
rd.Open sSql, cnDB, adOpenDynamic, adLockReadOnly
sSql = "select * from [order details] "
rd1.Open sSql, cnDB, adOpenDynamic, adLockReadOnly cnDB.CommitTrans
这只是个例子但我实际代码中的问题与此一致 实际还是要修改记录的
错误提示是:
不能在手动或分布事务方式下创建新的连接。
中的cnDB换成另外一个连接对象cnDB1就可以了
有没有cnDB.CursorLocation = adUseClient?
你的cnDB属性怎么设置的
有没有cnDB.CursorLocation = adUseClient?rd1.CursorLocation 为 adUseserver