невозможно открыть базу данных MS-Access в приложении QT - PullRequest
0 голосов
/ 26 октября 2018

У меня есть простая программа на qt, и что эта программа делает, чтобы открыть \ прочитать базу данных доступа Microsoft (.mdb или .accdb) и отобразить таблицы базы данных. однако моя проблема в том, что я даже не могу открыть БД в первую очередь

У меня есть база данных, расположенная на диске 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"

Я запутался в Интернете об этой проблеме, с которой сталкиваюсь, и, возможно, "не уверен", что это из-за реестра, потому что я обычно использую чистящее средство для чистки своего компьютера, которое также очищает реестр

помогите, пожалуйста, спасибо

edit: когда я использую код bool ok = QSqlDatabase::isDriverAvailable("QODBC");, он восстанавливает true, что означает, что с драйвером проблем нет

1 Ответ

0 голосов
/ 26 октября 2018

Попробуйте отбросить часть "FIL":

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

Кроме того, откройте апплет администратора ODBC на своем компьютере и подтвердите точное написание драйвера на вкладке Драйверы.

ссылка

...