QT5.8编译qoci并连接oracle 11g

it2022-05-05  159

前提要安装oracle 32位的客户端。到C:\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers复制oci为oci1。修改oci.pro文件。 如下: TEMPLATE = lib TARGET = q t L i b r a r y T a r g e t ( q s q l o c i ) Q T = c o r e c o r e − p r i v a t e s q l − p r i v a t e C O N F I G + = b u i l d a l l D E F I N E S + = Q T P L U G I N Q T N O C A S T T O A S C I I Q T N O C A S T F R O M A S C I I H E A D E R S + = qtLibraryTarget(qsqloci) QT = core core-private sql-private CONFIG += build_all DEFINES += QT_PLUGIN QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII HEADERS += qtLibraryTarget(qsqloci)QT=corecoreprivatesqlprivateCONFIG+=buildallDEFINES+=QTPLUGINQTNOCASTTOASCIIQTNOCASTFROMASCIIHEADERS+=PWD/qsql_oci_p.h SOURCES += P W D / q s q l o c i . c p p PWD/qsql_oci.cpp PWD/qsqloci.cppPWD/main.cpp INCLUDEPATH += $(ORACLE_HOME)/oci/include #D:/Dev/oracle/product/12.2.0/dbhome_1 #D:\app\jack\product\11.2.0\client_1 QMAKE_LFLAGS +=D:\app\jack\product\11.2.0\client_1\BIN\oci.dll INCLUDEPATH += D:\app\jack\product\11.2.0\client_1\oci\include

LIBPATH += D:\app\jack\product\11.2.0\client_1\oci\lib\msvc #QMAKE_USE += oci #QMAKE_LFLAGS += $(ORACLE_HOME)/oci/lib/msvc/oci.lib darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ OTHER_FILES += oci.json 4. 编译,再到生成目录下C:\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\build-oci-Desktop_Qt_5_8_0_MinGW_32bit-Release\release将dll拷贝到C:\Qt\Qt5.8.0\5.8\mingw53_32\plugins\sqldrivers。 5. 测试连接。 QStringList drivers = QSqlDatabase::drivers();

foreach(QString driver, drivers) qDebug() <<"\t" << driver; QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); db.setPort(1531); db.setHostName("192.168.88.13"); db.setDatabaseName("ISMARTWMS"); db.setUserName("iplant1"); db.setPassword("iplant1"); bool ok = db.open(); if(ok) { qDebug() << "connect sucess!"; } else { qDebug() << "connect failed!"; } db.close();

最新回复(0)