WIN7+QT5.2.0 連線oracle11g問題及解決方法
阿新 • • 發佈:2019-01-08
用下面的程式碼建立連線之後,出現了幾個問題
//連線資料庫 QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); /**連線Oracle資料庫 *資料庫名:abc *表名:my_oracle *使用者名稱:sys *密碼:123 *埠號:(預設)1521 */ db.setPort(1521); db.setHostName("localhost"); db.setDatabaseName("abc"); db.setUserName("sys"); db.setPassword("123"); if (!db.open()) { //連結資料庫失敗"; db.lastError().text(); return false; }
將db.lastError().text();的內容輸出到label中後顯示如下問題:
1.出現提示:driver not loaded
解決方法:將Qt安裝目錄C:\Qt\Qt5.2.0\5.2.0\Src\qtbase\plugins下的資料夾sqldrivers複製到自己的工程檔案build-linkOracle-Desktop_Qt_5_2_0_MinGW_32bit-Debug\debug目錄下。
資料夾sqldrivers裡面有四個檔案:libqsqloci.a, libqsqlocid.a, qsqloci.dll,qsqlocid.dll
2.出現提示:ORA-28009:應當以 SYSDBA 身份或SYSOPER 身份建立 SYS 連 Unable to logon
解決方法:新建一個使用者,用新的使用者建立連線,連線成功。(成功原因不清楚)