数据库:db1(MS SQL2K),db2(MS SQL2K)
若是在同一个程序里需要两个纪录集一起用的话,那么如何只需要一个链接就可实现这样的功能         
     
  现有一个程序(vb):
    dim cn as new adodb.Connection
    dim strcn1,strcn2
        dim rs1 as adodb.recordset
        dim rs2 as adodb.recordset        cn.open(strcn1)
        set rs1=cn.execute("select * from table1")
        cn.close
 
        cn.open(strcn2)
        set rs2=cn.execute("select * from table2")        
        cn.close
        //在此处同时使用rs1,rs2
       while(rs1.eof)
           while (rs2.eof)
              .....
           loop       loop         
 
 请问:如何能实现此种功能

解决方案 »

  1.   

    rs使用open函数打开表集的时候使用同一个connection对象就可以了吧
      

  2.   

    但是如果两个rs都用同一个connection的话。如下所示:
       dim rs1,rs2 as recordset
          dim cn as new connection
          cn.open(strcnn)      rs1.open("select * from table1",cn)
          .....
          rs2.open("select * from table2",cn)
          .....
          
          '如果此使再使用rs1读取数据时,就会发生错误。因为当rs2用cn打开纪录集的时候,已经把第一个纪录集rs1的连接关闭了。   
      

  3.   

    CDataBase db;
    db.open(.........open database connectCRS_aaa aaa(db);  //CRecorset
    CRS_bbb bbb(db);  //CRecorset