怎么样只进行一次连接(用CDatabase的对象进行数据库连接)
然后在其它对话框中(例如有另外两个对话框类对象ADlg和BDlg)
使用各自的记录集对象(例如Aset和Bset,其中Aset和Bset对应数据库"x.mdb"中的两个表A,B)
进行数据访问操作呢?

解决方案 »

  1.   

    传递CDatabase对象的指针作为对话框中CRecordset的参数。
      

  2.   

    例如说我在CAllDlg类的初始化方法中用CDatabase的对象进行数据库连接
    然后要在另外两个对话框类CADlg和CBDlg中使用各自记录集对象Aset和Bset
    指针怎么传递呢?
    可以举个例子吗?
      

  3.   

    直接将_RecordsetPtr(指针类型)作为参数传递就可以了。
      

  4.   

    可以直接定义,如你的数据库指针是m_pDatabase,某一个Set的指针是m_pRsA,则可以直接初始化:
    m_pRsA = new CRecordsetA(m_pDatabase);这是m_pRsA打开就是用m_pDatabase打开的,不会用GetDefaultDBName()函数中的数据库名,前提是该数据库指针有效我用的DAO,ADO的方法类似,自己去看MSDN,里面有详细解释和方法
      

  5.   

    可以在程序InitInstance中建立数据库连接,然后在需要用到连接的地方用extern申明外部的连接指针变量,这样就可以共用一个连接了