为什么我的CRecordset的open方法要手动选择数据源?是哪里出了问题?

        CDatabase db;  
        if( db.Open(_T("mysql5.1"),false,false,_T("ODBC;UID=root;pwd=19930318"),true))  
        {   
            IrisRecordSet *pIrisRecordSet = new IrisRecordSet();  
            CString sql="select * from iris";
            pIrisRecordSet->Open(CRecordset::snapshot , sql);  
            ...
            }  

调试发现第一个db.Open能够正常执行,一到第二个pIrisRecordSet->Open就要我手动选择数据源

其中IrisRecordSet是我基于CRecordset添加的类,并且已经与我的表iris相关联了

图片说明

用Ado来连接数据库,你用封装的类,需要选择。换ADO

换成jet的连接字符串看看

需要建立数据源:
1、“开始”->"管理工具"->"数据源ODBC" 选中“系统DNS”如下图:

图片说明

2、点击“添加按钮”,将会弹出创建新数据源对话框,选中“Miscrosfot Access Driver(_*mdb)”项,点击“完成”按钮,

图片说明

在“数据源名”文本框中输入 “mysql5.1”,单击选择按钮,在弹出的选择数据源对话框中,选择加载Access文件 mysql5.1.mdb,
最后点击
“确定”按钮,即完成了ODBC数据源的添加。

按上面方法操作后再打开程序,就不会再出现手动选择数据源的对话框了。