Qt程序连接Access数据库,出现 1、"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect" 或者 2、"[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 QODBC3: Unable to connect"的错误的解决办法

  • 系统环镜
  • 1、当出现"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"错误的解决办法
  • 2、"[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 QODBC3: Unable to connect"的错误的解决办法

1、"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect" 或者 2、"[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 QODBC3: Unable to connect"的错误的解决办法)

系统环镜

电脑系统:windows 10 64位操作系统,基于X64的处理器
Qt版本:Qt Creator 4.15.2,基于 Qt 5.15.2 (MSVC 2019, 64 bit)
Access版本:Access 2013 64位

1、当出现"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"错误的解决办法

按快捷键“windows徽标+R”,出现如下运行窗口,输入odbcad32,【确定】,打印ODBC数据源管理程序。

出现如下界面,当选择“MS Access Database",右边的【删除】或者【配置】是可用的(不是灰色的),说明Access数据库驱动正常的,我刚开始安装了office 2007,然后打开ODBC数据源管理程序,平台下面显示的值是“32位”,当选择“MS Access Database"时,右边【删除】或者【配置】是灰色的,卸载office 2007后,重新安装office 2013 64位版后才正常

如果以上方法不能解决,可以到微软网站上下载Microsoft Access 2010 数据库引擎可再发行程序包,手动安装Access数据库数据库引擎,链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255 ,一个是32位的数据库引擎,另一个是64位数据库引擎,根据需要选择下载!

  • 如果你的电脑系统是64位的,并且你已经安装了32位的数据库引擎(如:AccessDatabaseEngine.exe),大概率会不正常,会出现:在ODBC数据源管理程序中选择“MS Access Database"时,再点击右边【删除】或者【配置】按钮(不是灰色,可以点击),会报错误,你再安装64位的数据库引擎(如:AccessDatabaseEngine_X64.exe),会提示你已经安装了32位数据库引擎,无法再安装64位的数据库引擎,解决方法:再次双击32位引擎AccessDatabaseEngine.exe,选择卸载(这个安装程序也可以用来卸载),直到完成;然后再安装64位的数据库引擎。
  • 然后在Qt中加两条语句就能打开Access数据库
db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=D:\\Code\\DB.accdb")

如果到这一步还是没能解决问题,并且在ODBC数据源管理程序中选择“MS Access Database"时,右边【删除】或者【配置】能正常点击打开,那么看看是不是Qt用的编译器选择错了,检查一下编译器,我们用的是64位的数据库引擎,Qt的编译器也选择64位的,点击Qt左边栏的【项目】,切换到项目模式,可以看到MinGW 32-bit是粗体,说明选择了32位的编译器,如下图

  • 点击MinGW 64-bit,选择64位的编译器,如图


我们也可以把Qt的默认编译器改一下,点击Qt的【工具】,【选项…】,选择MinGW 64-bit,点击【Make Default】,修改默认编译器

2、"[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 QODBC3: Unable to connect"的错误的解决办法

void setDatabaseName(const QString &name)方法能接受DSN或连接字符串,前面已经介绍过连接字符串,下面是DSN的代码

db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("accDB");

accDB就是DSN字符串,要想代码起作用,首先打印ODBC数据源管理程序,点【添加…】按钮,如下

选择第二个,Microsoft Access Driver (*.mdb, *.accdb),点击【完成】

点击【选择…】,选择一个Access数据库,添加一个accDB的用户数据源

如果你Qt编译器选择MinGW 32-bit, 就会报"[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 QODBC3: Unable to connect"的错误,改成64位编译器选择MinGW 64-bit,问题就能解决

Qt程序连接Access数据库,出现“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect“错误的解决办法相关推荐

  1. java未发现数据源名称并且未指定默认驱动程序_转:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序...

    在Win7 64位系统下,使用Java+Access数据库编程,用Java连数据库时,出现错误提示,如下: Java java.sql.SQLException: [Microsoft][ODBC 驱 ...

  2. [Microsoft] [ODBC驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3:不能连接

    这个问题是我用一个登录程序连接SQLServer数据库时出现的错误,但是根据网上的其他教程来做,依旧没有解决,网上大部分都说要来设置ODBC数据源管理程序,"要用系统DSN". 下 ...

  3. 计算机上没有保存任何数据源,[microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序...

    [问题现象]安装数据库和软件重启电脑,运行系统管理时提示:[microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序 如下图所示: [原因分析]可能由于注册表ODBC相关 ...

  4. python连接sqlServer,报错:[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

    1. 在jupyter notebook连接sqlServer报错 报错信息:InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] ...

  5. [IM002] [Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序 Navicat Premium 连接sql server

    [IM002] [Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序 错误 Navicat 连接sqlserver没有驱动,需要先安装一下驱动 解决办法 首先需要找到 ...

  6. [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

    [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 本人不喜欢在本机装sql server,因为又庞大,又占空间,而且在安装过程中有时会出错,处 ...

  7. Navicat 连接SQL Server ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

    Navicat 连接SQL Server ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 和能成功连接数据库的环境对比,发现少了 ...

  8. mysql 未指定驱动程序_[ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序...

    前几天做扫码关注公众号送饮料的小程序时,在自己的电脑中运行一切正常,不过,当将程序放至使用的电脑时,一打开程序就弹出"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且 ...

  9. ODBC驱动器管理器——未发现数据源名称并且未指定默认驱动程序

    在使用Navicat 连接 sql server 数据库的时候报错 "[ODBC驱动器管理器]未发现数据源名称并且未指定默认驱动程序". 解决方案: step1 注:64位指的是电 ...

最新文章

  1. Java程序调用ssh, scp, sftp
  2. linux命令学习——file
  3. 小米台灯底座接口很松_呵护你的眼,米家台灯1S
  4. react招聘项目——使用cookie实现项目自动登录功能
  5. 使用ycsb测试cassandra
  6. UI设计灵感|仪表盘界面如何设计?优质案例给你帮助
  7. mysql中类型转换
  8. python 干什么工作具有明显优势-科多大数据告诉你Python为什么这么牛?学习python有什么优势?...
  9. 【路径规划】基于NSGA2实现无人机三维路径规划matlab源码
  10. 重要消息|2020年9月1日起, SSL证书最长有效期变更为1年
  11. 好设计如何诞生:关于好设计的100件事
  12. Android开发:LocationManager获取经纬度及定位过程(附demo)
  13. 前端面试精华帖:100个问题如果你回答出80个,那么请把你的简历给我
  14. P2356 弹珠游戏
  15. Linux 获取毫秒级时间戳
  16. 从内存播放Flash。
  17. 新唐M0内核。接口的TTL电平和斯密特电平的使用
  18. 三件让人幸福的事情:有人爱,有事做,有所期待 转自俞敏洪的新浪微博
  19. 区块链革命:我命由我不由天,是魔是仙, 我自己说了算
  20. 发现美团的一个新锅,可能程序员背不动了

热门文章

  1. 招商银行香港一卡通的猫腻
  2. “香港一卡通”收費表
  3. 大创项目计算机科学与技术,计算机系4个项目入选2020大创第二批
  4. java基础学习之this和super和内存结构
  5. UTF-8 and Unicode FAQ
  6. 解决com.mchange.v2.c3p0.DriverManagerDataSource. Could not load driverClass com.mysql.cj.jdbc.Driver报错
  7. bash中正确处理文件或路径名中的空格
  8. openstack从iso创建虚拟机
  9. 分享一个好用的护眼google插件
  10. CAM350导入文件时钻孔文件错误