本人最近在学ADO数据库编程,在学习过程中遇到了标题所说的问题,经过调试,最终定位在
m_pRecordset->Open( bstrSQL,_variant_t((IDispatch *)m_pConnection,true),adOpenForwardOnly,adLockOptimistic, adCmdText);
经过在网上各种搜索,最终发现问题所在:我的电脑系统是win7 64位的,与安装的32位Access驱动程序不匹配,致使ODBC相关的应用程序不能正常运行(如果是这一问题,你从控制面板->管理工具->ODBC数据源可以发现不能正常注册mdb数据源)。
解决方法:安装64位ODBC驱动程序
步骤:1. 从下述网址下载AccessDatabaseEngine_X64.exe,并进行解压。
2. 安装Orca编辑工具(下载地址http://www.technipages.com/wp-content/uploads/2007/11/orca.Msi)
3. 从AccessDatabaseEngine_X64.exe解压包中找到AceRedist.msi安装文件,利用Orca编辑工具打开,找到LaunchCondition里面的BLOCKINSTALLATION,删掉,保存。
4. 运行AceRedist.msi文件进行安装,基本选择默认安装文件夹(C:\Program Files\Microsoft Office\Office12)
5. 经过我自己的测试,上述所说的问题完美解决。