请教:win7 64 +vs2010 +access(msadodc.ocx) 数据库连接时open报错

gordonlj 2018-11-29 11:17:00
在win7 32bit vs2010(x86)中,通过ADO连接数据库access(.mdb),一切正常;
系统换成win7 64bit后,vs2010(x64)中,通过ADO连接数据库(.mdb),connect 对象open的时候报错,错误代码Unknown error 0x800A0E7A;
如图片。

按照 https://blog.csdn.net/HW140701/article/details/71077579 处理,出现错误代码Unknown error 0x800A0E7A,注册了c:\Program Files及(x86)\Common Files\System\Ole DB\下的所有dll,还是同样的错误

网上查询MSADODC.OCX插件不分32bit和64bit;

这个和vs2010(x86)及vs2010(x64) 有关系吗?
知道是connection的错误,但是是哪里没有注意到?谢谢大家!
...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
smwhotjay 2018-12-01
  • 打赏
  • 举报
回复

我已经抛弃了mdb access,改用sqlite了。mdb换个环境,有时运行打不开mdb,急死人。换sqlite,无关那些乱七八糟的组件了。
蒋晟 2018-11-30
  • 打赏
  • 举报
回复
如果你的x86版程序可以正常运行,那么x64版会报这个错误。原因是32位和64位的Office组件不能共存,64位的Office组件在安装时会检测系统,如果检测到32位的Office组件则拒绝安装。如果你要同时兼容32位和64位的Office版本,可以提供x86和x64两个版本,让用户根据自己机器上装的Office类型选择下载一个。做得对用户友好一点的话,在程序启动的时候检测一下Office版本,如果用户下载错误了,提示让用户安装正确版本的程序。 另外值得注意的地方: Windows 7 SP1 对ADO的类型库做了改动,Windows 7 SP1(或者Windows 7+KB983246)的ADO类型库不兼容旧的ADO类型库(例如没有装KB983246的Windows 7)。如果你编译的时候使用了新的ADO类型库,你需要确保用户系统上也安装了新的ADO类型库。参考https://jiangsheng.net/2011/02/24/breaking-change-in-ado-update-kb983246-included-in-windows-7-service-pack-1。 msadodc.ocx不是不分32位和64位,是根本不存在64位版本,因为Visual Studio是32位,所以设计器里能用这个控件,但是你调试64位版本的程序的时候会报错。这个问题没有解决办法,只能改代码不用这个控件。
gordonlj 2018-11-30
  • 打赏
  • 举报
回复
引用 2 楼 zgl7903 的回复:
https://download.csdn.net/download/harvic880925/4436386
那哥们要50分,再上网搜搜
赵4老师 2018-11-29
  • 打赏
  • 举报
回复
在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧