在利用ADO数据库编程时,出现的IDispatch 3127和Unknow error 0x800a0e7d错误的解决方法

本人最近在学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,并进行解压。

http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

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. 经过我自己的测试,上述所说的问题完美解决。

猜你喜欢

转载自blog.csdn.net/hanbingyunzi163/article/details/38402235