一:
用Qt Creator打开C:\TOOL\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\oci\oci.pro文件
编辑oci.pro文件,加入下面几行:
TARGET = qsqloci
HEADERS += $$PWD/qsql_oci_p.h
SOURCES += $$PWD/qsql_oci.cpp $$PWD/main.cpp
#QMAKE_USE += oci
INCLUDEPATH += C:\TOOL\oracle\product\10.2.0\client_1\oci\include
LIBS += -LC:\TOOL\oracle\product\10.2.0\client_1\oci\lib\msvc -loci
darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ
OTHER_FILES += oci.json
PLUGIN_CLASS_NAME = QOCIDriverPlugin
include(../qsqldriverbase.pri)
然后,在项目上,点击鼠标右键,执行qmake
然后在项目上面,点击鼠标右键,执行“构建”
生成如下目标文件:
--out-implib,C:\TOOL\Qt\Qt5.8.0\5.8\Src\qtbase\plugins\sqldrivers\libqsqloci.a
-o ..\..\..\..\plugins\sqldrivers\qsqloci.dll
需要注意,生成的目标文件,没有保存在代码目录,而是qtbase\plugins\sqldirvers目录
二:
使用oracle库
拷贝qsqloci.dll,qsqlocid.dll文件到C:\TOOL\Qt\Qt5.8.0\5.8\mingw53_32\plugins\sqldrivers目录中
示例代码如下:
在Qt Creator中创建Qt Console Application
修改.pro文件,增加如下说明(C:\TOOL\Qt是我安装qt的目录):
INCLUDEPATH += C:\TOOL\Qt\Qt5.8.0\5.8\Src\qtbase\src\plugins\sqldrivers\oci
LIBS += -LC:\TOOL\Qt\Qt5.8.0\5.8\Src\qtbase\plugins\sqldrivers -lqsqloci
示例代码如下:
#include <QCoreApplication>
#include <QDebug>
#include "qsql_oci_p.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<"aaaaaaaaaaaaaaaaaaaaaaaaaa";
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("192.168.1.10");
db.setPort(1521);
db.setDatabaseName("orcl");
db.setUserName("user1");
db.setPassword("user1");
if(!db.open())
{
qDebug() << "cant open QOCI database!";
}
else
{
qDebug() << "open QOCI database!";
QSqlQuery query;
query.exec("select * from tmp_region");
while(query.next())
{
QSqlRecord rec = query.record();
qDebug() << rec.value(0) << rec.value(1) << rec.value(2);
}
db.close();
}
qDebug()<<"aaaaaaaaaaaaaaaaaaaaaaaaaa";
return a.exec();
}
备注:
在安装qt的时候,需要选择src项目,否则,没有oracle的库代码