我在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
,这意味着驱动程序没有问题
答案 0 :(得分:0)
尝试删除“ FIL”部分:
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C://Qt_Project//Database1.accdb");
此外,在计算机上打开ODBC Administrator小程序,并在“驱动程序”选项卡下确认驱动程序的确切拼写。