日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

终于编译好了qt的oracle驱动QOCI,连接成功!!!

發(fā)布時(shí)間:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 终于编译好了qt的oracle驱动QOCI,连接成功!!! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這么多天以來終于有件事可以小舒暢了一下了。

今天終于編譯好了qt的oracle驅(qū)動(dòng)QOCI,連接成功!!!

Qt Commercial版只自帶了SQLLite和ODBC的驅(qū)動(dòng),oracle的驅(qū)動(dòng)要自己編譯,折騰了許久,終于成功了。具體如下:

?

編譯QOCI:

1st:
go to Qt’s Command Prompt window. (VS 2008
)

2nd:
set INCLUDE=%INCLUDE%;D:/Work/Oracle_10.2_client/oci/include

3rd:
set LIB=%LIB%;D:/Work/Oracle_10.2_client/oci/lib/msvc

4th:

cd %QTDIR%/src/plugins/sqldrivers/oci

5th:
qmake -o Makefile oci.pro

6th:
nmake

?

連接數(shù)據(jù)庫:

#include <QtCore/QCoreApplication> #include <QSqlDatabase> #include <QSqlQuery> #include <QVariant> int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");db.setHostName("192.168.0.192");db.setDatabaseName("dbname");db.setUserName("username");db.setPassword("passwd");db.setPort(1521);if (db.open())printf("打開成功/n");elseprintf("打開失敗/n");QSqlQuery query("SELECT column_1 FROM table_1");while (query.next()) {QString country = query.value(0).toString();printf("%s/n",country.toLocal8Bit().data());}return a.exec(); }

以前一直顯示

QSqlDatabase: QOCI driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
打開失敗
QSqlQuery::exec: database not open

?

Cheers!

?

?

?

順帶記錄下Solaris10下的編譯方法(沒試過)

?

Oracle的環(huán)境變量:

ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.0.2

Qt的編譯文件在Solaris 10下的路徑:

/export/home/qt-4.3.1/qt-X11-commercial-src-4.3.1

Qt的環(huán)境變量:

QTDIR=/usr/local/Trolltech/Qt-4.3.1

Show下環(huán)境變量:

ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.0.2
export ORALCE_BASE ORACLE_HOME

QTDIR=/usr/local/Trolltech/Qt-4.3.1
PATH=$QTDIR/bin:$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:/usr/openwin/sfw/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export QTDIR PATH LD_LIBRARY_PATH

??? OK!開始在Solaris 10下Qt編譯Oracle 10g驅(qū)動(dòng),Oracle 10g是服務(wù)端!

cd /export/home/qt-4.3.1/qt-X11-commercial-src-4.3.1/src/plugins/sqldrivers/oci
qmake -o Makefile "INCLUDEPATH+=$ORACLE_HOME/rdbms/public $ORACLE_HOME/rdbms/demo" "LIBS+=-L$ORACLE_HOME/lib -lclntsh" oci.pro
gmake
gmake install

這樣你就能在 $QTDIR/plugins/sqldrivers 中找到 libqsqloci.so 數(shù)據(jù)庫的驅(qū)動(dòng)了~~

在用的程序中的pro文件中需要如下設(shè)置:

QT += sql

測試一下吧~

QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
?? qDebug() << "/t" << driver;

你會(huì)驚喜的發(fā)現(xiàn),QOCI8和QOCI的出現(xiàn)!

最后墨跡一句,在configure的時(shí)候編譯如下:

configure -plugin-sql-oic -I/$ORACLE_HOME/rdbms/public -I/$ORACLE_HOME/rdbms/demo -L$ORACLE_HOME/lib

?

總結(jié)

以上是生活随笔為你收集整理的终于编译好了qt的oracle驱动QOCI,连接成功!!!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。