无法在QT应用程序上打开MS-Access DB

时间:2018-10-26 16:05:00

标签: database qt ms-access-2016

我在qt中有一个简单的程序,该程序的作用是打开\读取Microsoft访问日期库(.mdb或.accdb)并显示db表。 但是我的问题是我一开始甚至无法打开数据库

我在c驱动器(C:\ Qt_Project \ Database1.accdb)中有一个数据库

在(.pro)文件中,我包含了QT += core gui sql

包含的库是:

#include <QSqlDatabase>
#include <QDebug>
#include <QSqlError>

我的代码是:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC","AccessDB");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=C://Qt_Project//Database1.accdb");
if(db.open())
  qDebug() << "oK";
else
  qDebug() << db.lastError().text();

最后我的输出是

 "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified QODBC3: Unable to connect"

我已经在网络上浏览了我所面临的这个问题,也许“不确定”这是因为注册表的原因,因为我通常使用清洁剂来清洁我的PC,这也正在清洁注册表。

请帮助,谢谢

编辑:当我使用代码bool ok = QSqlDatabase::isDriverAvailable("QODBC");时,它会显示true,这意味着驱动程序没有问题

1 个答案:

答案 0 :(得分:0)

尝试删除“ FIL”部分:

db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C://Qt_Project//Database1.accdb");

此外,在计算机上打开ODBC Administrator小程序,并在“驱动程序”选项卡下确认驱动程序的确切拼写。

reference