x64 win64编译环境下ADO链接Access数据库的问题解决
来源:互联网 发布:php加密方式 编辑:程序博客网 时间:2024/05/17 08:32
Win32编译环境下,用ADO数据库连接Access数据库一般都不会报错,但是最近由于项目上的需要,程序需要编译成64位以便申请到更多的使用内存空间,当把编译方式从Win32改为x64的时候,突然出现了数据库连接出现未知错误,这时候就猜到了应该是编译环境的改变导致了数据库连接出错,在参考了其他大神的解决方案之后,终于解决了这个问题,我的环境为Win7 64+MFC(VS2010)+ADO+Access2007。
参考链接如下:
http://blog.csdn.net/sundacheng1989/article/details/17925431
http://www.cnblogs.com/bluedoctor/p/3925871.html
http://blog.csdn.net/kirawoo/article/details/39032387
http://blog.csdn.net/u010891996/article/details/12522911
解决方法:
步骤1:去官网下载AccessDatabaseEngine_64.exe,下载链接
https://www.microsoft.com/zh-cn/download/details.aspx?id=13255
或者直接去我的下载频道进行下载
http://download.csdn.net/detail/hw140701/9830665
步骤2:这一个步骤是强制安装刚刚下载的AccessDatabaseEngine_64.exe,如果不强制安装的话,它会要求你卸载你所安装的全部的Office软件,那多麻烦!!!,所以选择忽略提醒,强制安装,
打开cmd.exe,在命令行输入“你的AccessDatabaseEngine_64.exe的存放路径” /passive,比如我的就是"F:\软件\我下载的\Windows数据库编程\AccessDatabaseEngine_64.exe" /passive强制安装,输完这个命令就等待安装完成。
步骤3:在安装完上述引擎之后,你需要修改一下你的代码,在win32编译环境下我们的数据库的链接字符串是
m_connection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",databaseName);
如果你需要在x64的编译环境环境下连接Access数据库你需要修改为
m_connection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s",databaseName);
为了更好的适配不同的编译环境,我将我的代码修改为
//初始化COM,创建ADO连接对象实例 getsample_pConnection.CreateInstance(__uuidof(Connection));getsample_pRecordset.CreateInstance(__uuidof(Recordset));//构造数据库连接字符CString m_connection;#if defined _WIN64//如果是64位程序m_connection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s",databaseName);#elif defined _WIN32//如果是32位程序m_connection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",databaseName);#endiftry{//使用Open方法连接数据库getsample_pConnection->Open(_bstr_t(m_connection),"","",adModeUnknown);//以下两行用来设置状态栏的提示信息 }catch(_com_error e)//捕捉数据库打开过程中的错误信息{CString tempErrorMessage;tempErrorMessage.Format("数据库连接失败,错误原因为:%s",e.ErrorMessage());AfxMessageBox(tempErrorMessage)}
当是64位程序的时候就为
m_connection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s",databaseName);
当是32位程序的时候就为
m_connection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",databaseName);
然后重启一下PC,应该就可以编译成功了。
- x64 win64编译环境下ADO链接Access数据库的问题解决
- flann在VS2015 x64环境下无法编译的问题解决
- x64环境下CodeBlocks编译动态链接库的问题
- VC ADO链接ACCESS数据库
- MFC使用ADO链接ACCESS的环境部署与注意事项
- vs2012下mfc程序通过ado方式使用access数据库编译的程序在xp底下无法使用解决方法
- Win64位下Python环境的安装
- win64环境下sklearn的配置
- VC连接ADO方式ACCESS数据库在WIN7下编译到XP下不能运行解决方法
- VC连接ADO方式ACCESS数据库在WIN7下编译到XP下不能运行解决方法
- VC连接ADO方式ACCESS数据库在WIN7下编译到XP下不能运行
- VC连接ADO方式ACCESS数据库在WIN7下编译到XP下不能运行解决方法
- VC连接ADO方式ACCESS数据库在WIN7下编译到XP下不能运行解决方法
- cocos2d-x win64环境下编译和创建项目
- VC下利用ADO连接Access数据库
- VC下利用ADO连接Access数据库
- VC下利用ADO连接Access数据库
- VC下利用ADO连接Access数据库
- 自定义Gradle task
- Eclipse工具
- 开源项目合集
- MouseOrbit
- @ResponseBody注解的作用
- x64 win64编译环境下ADO链接Access数据库的问题解决
- Windows未能启动,原因可能是最近更改了硬件或软件,解决此问题的步骤...
- 第一天深入了解 指针 引用吧
- JavaScript的null类型说明
- 【分布式Tensorflow(0.11.0)问题 未解决】 alexnet_v2/pool1/MaxPool : tensor_in must be 4-dimensional
- 启动tomcat小猫不显示
- LB/LVS之KeepAlived
- 考试篇(5.2) NSE4 题库 14. 高可用性 ❀ 飞塔 (Fortinet) 网络安全专家
- 搭建Hadoop2.5.2环境