qt连接access数据库出现 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"解决办法

34 篇文章 7 订阅

qt在链接Access数据库时遇到的问题:电脑64位,安装的32位office软件,调用access数据库出现"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"问题,找到ODBC数据源管理工具,方法:控制面板->管理工具->数据源(ODBC),打开如图所示

点开MS Access Database,若能点开则说明数据源没有问题,否则会提示它会提示没有安装相应驱动。这时候重新安装

链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255 

64位安装AccessDatabaseEngine_X64.exe,安装成功再次点开数据源无提示即成功。若不行,重新安装office(我就是把32位换成了64位)。

还有就是驱动问题,QT里给的例子中用的DRIVER={Microsoft Access Driver (*.mdb)},而系统默认的数据源配置驱动为:Microsoft Access Driver (*.mdb, *.accdb),最好的办法是先查看本机数据源中access对应的驱动,根据驱动名称写相应的数据源。

最后需要注意的是数据库路径问题,我刚开始用的"\"和"/"会出问题,最会换成"\\"才可以用

最后附上代码

QSqlDatabase db; 
db = db.addDatabase("QODBC"); 
QString path("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=E:\\test.mdb"); 
db.setDatabaseName(path); 
if (db.open()) 
{
      // success!
      qDebug() << "Success";
}
else{
      qDebug() << "Errror!";
      qDebug() << db.lastError().text();
      db.close();
}


参考链接1:https://bbs.csdn.net/topics/390689274

参考链接2:http://blog.initm.com/qodbc3-unable.shtml

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值