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();
}