qt連接access數據庫出現 未發現數據源名稱並且未指定默認驅動程序 QODBC3: Unable to connect"解決辦法

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章