ODBC 在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配

发布时间:2024年01月12日

84fc2446fd0e4b49880ba7d690e0036c.png

常规办法就是64位或32位匹配,如果解决不了,往下看。


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓解决方案↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

解压AccessDatabaseEngine_X64.exe,用orca编辑器打开AceRedist.msi文件,

选择LaunchCondition项,选择BLOCKINSTALLATION行删除,然后保存,运行AceRedist.msi文件,即可正常安装access的64位odbc驱动。

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑解决方案↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


全新上位机部署环境时需要准备的东西:

????????ODBC

????????VC_redist.x86.exe

????????VC_redist.x64.exe

????????accessdatabaseengine.exe

????????accessdatabaseengine_X64.exe

????????Orca.Msi

Orca下载地址:

How to Download ORCA MSI Editor Standalone Version - Guiding Tech

说一下具体情况:

需求:

????????Qt widget C++写了一个上位机软件,读取本地Access2007数据库内容。(Qt Quick--qml不能对接数据库)

环境分析:

? ? ? ? win7-64位操作系统。

? ? ? ? Access2007只有32位的,没有64位的。

????????ODBC安装后在启动菜单中看到的是64位的,32位的在SysWOW64中,找到并创建一个快捷方式到桌面。

????????VC_redist.x86.exe,在新电脑环境中,安装运行软件有时会报错,或明确提示提示缺少VCruntime140.dll时,装上86的运行时试下,不行再装64的。我这里只用到86的。

? ? ? ? 读取数据库需要经过ODBC,安装对应64或32的对应数据库的驱动,依赖对应驱动创建DSN指向数据库DB文件,才能连接数据库;一般情况下,64或32匹配好就可以了。但现在这个情况由于Access2007的存在,只能用32位ODBC创建DSN,但操作系统是win7-64位,然后就出现“体系结构不匹配”的问题了。解决方案就是把64位的驱动也装上(我也想知道为什么,问题就在ODBC内部)。然后又出现问题了,安装64位驱动时会提示你,由于本地已经安装了32位的Access,你不可以再安装64位的驱动。

? ? ? ? 这就让人很绝望。

????????遇到同样问题的点个赞,我看看有多少难兄难弟👀

解决方案来自一位博客园-麒麟正青春的博主,原文链接

64位系统下access的64位odbc驱动 - 麒麟正青春 - 博客园 (cnblogs.com)

????????防止链接失效,自己记录,改了名字也方便大家查阅。我当时翻遍了百度都没找到这个文章,还是网友发我的。

文章来源:https://blog.csdn.net/Orlando321/article/details/135547201
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。