在事务中做了两个连接,报错是“不能在手动或分布事务方式下创建新的连接。”,请问:
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.   

    老天啊,adLockReadOnly?都ReadOnly了,你还想CommitTrans?换成别的。
      

  2.   

    问题不在 readonly 换成别的也一样
    这只是个例子但我实际代码中的问题与此一致   实际还是要修改记录的
    错误提示是:
    不能在手动或分布事务方式下创建新的连接。
      

  3.   

    你把这句rd1.Open sSql, cnDB, adOpenDynamic, adLockReadOnly
    中的cnDB换成另外一个连接对象cnDB1就可以了
      

  4.   

    你的cnDB属性怎么设置的
    有没有cnDB.CursorLocation = adUseClient?
      

  5.   

    to楼上:
    你的cnDB属性怎么设置的
    有没有cnDB.CursorLocation = adUseClient?rd1.CursorLocation 为 adUseserver
      

  6.   

    rd1.CursorLocation 改为adUseClient试一下