Qt遠端連線Oracle資料庫
一:程式碼
[cpp] view plaincopyprint?- /**連線Oracle資料庫
- *資料庫名:abc
- *表名:my_oracle
- *使用者名稱:system
- *密碼:123
- *埠號:(預設)1521
- */
- void MainDialog::connectOracle(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
- {
- db = QSqlDatabase::addDatabase("QOCI");
- db.setHostName(sIp);
- db.setPort(iPort);
- db.setDatabaseName(sDbNm);
- db.setUserName(sUserNm);
- db.setPassword(sPwd);
- if (db.open())
- {
- QMessageBox::information(this, tr("提示"), tr("Oracle資料庫連線成功!"), tr("確定"));
- }
- else
- {
- QMessageBox::information(this, tr("提示"), tr(
- qDebug() <<"error_Oracle:\n" << db.lastError().text();
- }
- }
二:連線過程遇到的問題。
問題1:
QSqlDatabase: QOCI driver not loaded
QSqlDatabase:available drivers: QSQLITE QODBC3 QODBC(1)出錯原因:本連線是通過QMYSQL驅動,而Qt本身並沒有QOCI驅動(只有QSQLITE QODBC3 QODBC),
所以就需要自己編譯QOCI
(2)編譯QOCI驅動。
1.go to "Qt Command Prompt" window. (開始-程式-對應的qt項裡面去找)。
2.qmake "INCLUDEPATH+=c:\oracle\oci\include" "LIBS+=-Lc:\oracle\oci\lib\msvc" oci.pro
3.qmake "INCLUDEPATH+=D:\oracle_setup\app\admin\product\11.1.0\db_3\OCI\include" "LIBS+=-LD:\oracle_setup\app\admin\product\11.1.0\db_3\OCI\lib\msvc" oci.pro
4.mingw32-make
問題2:
出現錯誤:
D:\qt_sdk\qt\src\plugins\sqldrivers\oci>mingw32-make
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `D:/qt_sdk/qt/src/plugins/sqldrivers/oci'
mingw32-make[1]: Nothing to be done for `all'.
mingw32-make[1]: Leaving directory `D:/qt_sdk/qt/src/plugins/sqldrivers/oci'
mingw32-make -f Makefile.Release all
mingw32-make[1]: Entering directory `D:/qt_sdk/qt/src/plugins/sqldrivers/oci'
mingw32-make[1]: Nothing to be done for `all'.
mingw32-make[1]: Leaving directory `D:/qt_sdk/qt/src/plugins/sqldrivers/oci'
出錯原因:這個問題表示QOCI驅動已經被編譯過了!!!
問題3:
"ORA-12541: TNS: 無監聽程式
Unable to logon"
(1)原因:服務裡邊的OracleOraDb11g_home3TNSListenener未啟動。
(2)解決:啟動OracleOraDb11g_home3TNSListenener.
問題4:
服務裡邊的OracleOraDb11g_home3TNSListenener啟動後總是自己關閉,導致一直無法監聽
(1)原因:因為昨天關機之前我改了主機名。
(2)解決:開啟listener.ora內容:
將(ADDRESS = (PROTOCOL = TCP)(HOST = 原主機名)(PORT = 1521))
改為:(ADDRESS = (PROTOCOL = TCP)(HOST = 新主機名)(PORT = 1521))
ok啦!/
再啟動服務。
啟動tnslsnr,成功啦!
問題5:
"ORA-12505: TNS: 監聽程式當前無法識別連線描述符中所給出的 SID
Unable to logon"
解決:開啟tnsnames.ora內容:
將(ADDRESS = (PROTOCOL = TCP)(HOST = 原主機名)(PORT = 1521))
改為:(ADDRESS = (PROTOCOL = TCP)(HOST = 新主機名)(PORT = 1521))
ok啦
問題6:
安裝Oracle資料庫時報錯:ORA-28056: Writing audit records to Windows Event Log failed安裝Oracle資料庫時報錯:ORA-28056: Writing audit records to Windows Event Log failed
解決辦法:
1、開啟windows 事件檢視器
2、在左側應用程式上點選右鍵,開啟屬性。
3、當達到最大檔案時,選擇按需要改寫事件;同時點選清除日誌按鈕。
4、點選確定。
5、重新執行database configuration assistant,配置資料庫。
問題7:
ORA-12560: TNS: 協議介面卡錯誤
3個原因,找到對應的解決問題:
1.監聽服務沒有起起來。windows平臺個一如下操作:開始---程式---管理工具---服務,開啟服務面板,啟動oraclehome92TNSlistener服務。
2.database instance沒有起起來。windows平臺如下操作:開始---程式---管理工具---服務,開啟服務面板,啟動oracleserviceXXXX,XXXX就是你的database SID.
3.登錄檔問題。regedit,然後進入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0將該環境變數ORACLE_SID設定為XXXX,XXXX就是你的database SID.或者右幾我的電腦,屬性--高階--環境變數---系統變數--新建,變數名=oracle_sid,變數值=XXXX,XXXX就是你的database SID.或者進入sqlplus前,在command
line下輸set oracle_sid=XXXX,XXXX就是你的database SID.
經過以上步驟,就可以解決問題
三:遠端連線
(1)建一個sqldrivers資料夾,將oraociei11.dll放進去。
(2)到工程的exe檔案同目錄下,把sqldrivers資料夾和oci.dll放進去。
(3)將整個程式發到客戶端。
相關推薦
Qt遠端連線Oracle資料庫
一:程式碼 [cpp] view plaincopyprint? /**連線Oracle資料庫 *資料庫名:abc *表名:my_oracle *使用者名稱:system *密碼:123 *埠號:(預設)1521 */ void MainDialog::con
***初學者之 Navicat遠端連線Oracle資料庫*
** 本人連線到遠端資料庫的成功步驟,錯誤的就不顯示出來了。 1.這個東西是需要下載其他玩意的 instantclient-basic-windows.*64-12.0.1.0.zip instantclient-sqlplus-windows.*64-12.2
Navicat Premium 12遠端連線oracle資料庫
首先去oracle官網下載Instant Client 和sqlplus,下載地址: 注意下載的檔案要和你的系統對應,如果你的系統是32位的需要下載32位的檔案,
使用sqlplus和PLSql developer遠端連線oracle資料庫
下面的圖片展示了安裝oracle資料庫伺服器端軟體和客戶端軟體的兩個流程: 通過上面的流程,我們清楚伺服器端和客戶端分別有一個需要配置的檔案,伺服器端的是監聽器配置檔案,客戶端是網路服務名稱配置檔案。分別簡述如下: 伺服器端的監聽器檔案儲
PLSQL developer+instantclient_11_2實現遠端連線Oracle資料庫
1、 下載PLSQL developer、instantclient_11_2, 下載地址:https://pan.baidu.com/s/1_MjmIT4nUzsQ7Hi8MCrs1A, 備註:此安裝包包含plsql(64位)和instantclient
使用PL/SQL Developer 遠端連線Oracle資料庫出現 “無監聽程式“錯誤 的解決辦法
今天在使用PLSQL遠端連線ORACLE資料庫的時候,突然報錯,無監聽程式,出現這個錯誤 我首先第一反應是開啟 服務 看了一下 Oracle常用的幾個服務是否正常啟動,監聽服務是否啟動,打開發現ORACLE的 所必須開的的服務 都已經正常執行, 然後我又嘗試連線了一下本
ORACLE- PLSQL Developer 遠端連線oracle資料庫
1、先到Oracle網站下載Instant Client : 根據你的作業系統選擇不同的Instant Client版本 下載會是一個壓縮檔案,解壓之後的資料夾叫:D:\Program Files\PLSQL Developer\instantclient_11_2
PL/SQL遠端連線oracle資料庫完美教程
PL/SQL遠端連線oracle資料庫教程 - 所需要包: 安裝步驟: 1.到Oracle網站下載Instant Client 下載會是一個壓縮檔案,解壓之後的資料夾叫:instantclient_12_2.放在你喜歡的目
Windows如何用PL/SQL Developer遠端連線Oracle資料庫
第二步:如果你的plsql沒有設定中文字符集的功能,比如我的plsql developer10就沒有,那可以用設定環境變數的方式解決此問題,在環境變數中新增一個名稱為NLS_LANG值為你oracle字符集(比如SIMPLIFIED CHINESE_CHINA.ZHS16GBK)的系統變數,重啟plsql
QT通過ODBC驅動連線Oracle資料庫
1)我是用的是qt4.8.6,裡面是自帶odbc驅動的,如果沒有的話也可以進行編譯,具體方法是: 第一步,開啟qt下的黑窗體; 第二步,一次輸入: 1、 cd C:\Qt\4.8.6\src\plugi
Oracle資料庫視覺化工具(plsql developer)連線遠端伺服器Oracle資料庫
參考部落格: 特別感謝以上博主的技術文章,本部落格參考以上部落格並加以整合,實現自己的功能需求,有部分文字別的博主的文章就不能贊一詞,所以會有拿來主義,並註明出處。如果有博主覺得我的做法欠佳,私信或者評論,我會修改。 需求說明: 本機使用視覺化工具連線遠端伺服器上的
不安裝Oracle客戶端遠端連線Orcale資料庫
最近有一任務,需要使用Oracle資料庫,以前對此不太熟悉,就從網上查詢資料,(說實在的網路真是太好了,也多虧了許多的熱心的技術人員,願意把自己的經驗和心得與大家分享)並轉貼了一個帖子參考,不過此帖子有些地方沒有說清楚,確實讓我費了好大勁,才測試成功。下面我把我的步驟說明一下
PHP 連線 oracle資料庫(可遠端)的測試操作
4、第四步:檢測oci8是否配置成功 1.一般情況下,開啟localhost即能顯示 phpinfo.php介面,裡面即為 php 資訊。可採用 “Ctrl+F”搜尋“oci”,檢視是否有對應的oci模組,當然有一點php基礎的完全可以直接訪問自己編寫的檔案,記得裡面加入“echo phpin
QT連線Oracle資料庫
這兩天一直困擾於Qt連線資料庫的問題,首先我描述下我的實驗環境和我遇到的問題,然後再給出具體的解決方案。 1、版本:qt 4.8.3,vs2008,Oracle10g; 2、實驗環境和遇到的問題:Oracle安裝在區域網內的一個伺服器上,我自己的機器沒有安裝
Hibernate連線oracle資料庫:外部(遠端)資料庫和內部(本地)資料庫
連線內部資料庫 <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>//127.0.0.0 <pr
Qt連線Oracle資料庫詳細介紹(QOCI)
Qt連線Oracle資料庫詳細介紹 1.前提條件 (1)本地安裝了Oracle資料庫或者oracle instant client。 (2)已編譯成功所需要的lib檔案QOCI.lib (這部分等我稍後補上) 2.實現程式碼: (1)包含lib檔案 QtS
plsql、dblink連線Oracle資料庫長時間空閒後自動斷開及遠端終端連線linux空閒超時後自動斷開問題
一、plsql及dblink連線Oracle資料庫長時間空閒後自動斷開 現象: 1、plsql連線資料庫長時間空閒後自動斷開 2、使用dblink訪問資料,長時間空閒後,連線時報錯失去連線等,需要重新
delphi 7連線oracle資料庫問題
ADOQuery1: Parameter 'a_id' not found問題 遇到此報錯,首先要查詢是否欄位拼寫問題或者繫結變數時確實“:”,排除這個之後再嘗試以下方法。 1.Delphi 7連線oracle資料庫時沒有Oracle Provider for O
PLSql連線Oracle資料庫的錯誤提示
今天我安裝了Oracle資料庫,使用PLSql連線時 提示"no listener" 與 Ora-12514:tns:偵聽器目前不知道連線描述符中請求的服務 ; 還有在本地計算機無法啟動OracleOraHome
記一次jdbc連線oracle資料庫佔用CPU過高的問題排查
背景: 公司有一個通訊系統,主要是通訊資料到客戶端程式所指定的資料庫,目前支援sqlserver、mysql和oracle三種類型的資料庫,此篇主要記錄一次oracle資料庫佔用CPU飆高的問題。 &nbs