我在使用ADO的时候,使用同一个连接,如果同时打开两个记录集,则总是出现问题,烦请高手给点经验!!!

解决方案 »

  1.   

    ADO同时打开多个记录集应该是没有问题的。
    说一下你怎么连接的,出现什么问题
      

  2.   

    如果打开两个记录集对象的是不会有问题的。如果两次打开用同一起记录集变量的话,那么就要注意对象的关闭与释放。dim rs as adodb.recordset
    set rs=new adodb.recordset
    rs.CursorLocation=adUseClient
    rs.open "sleect * from XXX表",cn,3,3
    set datagrid1.datasource=rs
    datagrid1.refresh
    rs.close'第一次使用后关闭记录集对象
    rs.CursorLocation=adUseClient
    rs.open "select name,sex from XXX",cn,3,3
    set datagrid1.datasource=rs
    datagrid1.refresh
    rs.close'用完后关闭记录集
    set rs=nothing'释放记录集
      

  3.   

    没有问题
    Dim adoCnn As New ADODB.Connection
     Dim adoCmm As New ADODB.Command
     Dim Rs As New ADODB.Recordset
     Dim RsOrder As New ADODB.Recordset adoCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from employees", adoCnn, adOpenDynamic, adLockBatchOptimistic
        RsOrder.CursorLocation = adUseClient
        RsOrder .Open "select * from order", adoCnn, adOpenDynamic, adLockBatchOptimistic   Set MSHFlexGrid1.DataSource = RsOrder    Set DataGrid1.DataSource = RsRs.Close      '关闭记录集
    RsOrder.Close
    Set Rs=Nothing
    Set RsOrder=Nothing   '释放资源
      

  4.   

    那么使用RsOrder.CursorLocation = adUseClient又有什么要注意的地方呢?
      

  5.   

    使用客户端游标后,因为是使用客户端的资源,所以就只能使用静态游标,如果锁的类型是乐观锁定,那么也只不过是锁定客户端的资源。所以也就不支持动态更新,就是说服务器端数据有任何变化,你都只能是requery后才能看得到更新后的数据.