QT5.4 编译oracle 驱动

前端之家收集整理的这篇文章主要介绍了QT5.4 编译oracle 驱动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、在oracle官网下载包


instantclient-sdk-nt-12.2.0.1.0.zip 和instantclient-basiclite-nt-12.2.0.1.0.zip 这两个包 (需要考虑QT为32位还是64位来下载相应的包)
二、驱动编译
1、打开编译命令行

2、执行如下命令:
set INCLUDE=%include%;F:\instantclient_sdk\include;F:\Qt\Qt5.4.1\Tools\mingw491_32\include
set LIB=%lib%; F:\instantclient_sdk \lib\msvc
cd F:\Qt\Qt5.4.1\5.4\Src\qtbase\src\plugins\sqldrivers\oci(自己QT实际安装路径)
qmake oci.pro
mingw32-make


其中:F:\instantclient_sdk\include 为instantclient-sdk-nt-12.2.0.1.0.zip实际解压路径


3、拷贝编译的结果文件
拷贝F:\Qt\Qt5.4.1\5.4\Src\qtbase\plugins\sqldrivers目录下:libqsqloci.a、libqsqlocid.a、qsqloci.dll、qsqlocid.dll
四个文件到F:\Qt\Qt5.4.1\5.4\mingw491_32\plugins\sqldrivers文件夹下


4、编译程序,进行测试
#include <QCoreApplication>
#include <QsqlDatabase>
#include <QsqlQuery>
#include <QVariant>
#include <QDebug>
#include <QsqlError>
int main(int argc,char *argv[])
{
QCoreApplication a(argc,argv);
QsqlDatabase db = QsqlDatabase::addDatabase("QOCI");
db.setPort(1521);
db.setHostName("192.168.1.101");
db.setDatabaseName("ORCL");
//db.setUserName("myoracle");
db.setUserName("lhl_oracle");
db.setPassword("111");
if (!db.open())
{
//链接数据库失败";
qDebug() << db.lastError().text();
qDebug() << "Open error";
return false;
}


qDebug() << "Open OK";
QsqlQuery query;
bool b = query.exec("SELECT * from MYORACLE.\"user\"");
while (query.next()) {
QString id = query.value(0).toString();
qDebug() << "ID= " <<id ;
}


qDebug() << db.lastError().text();
return a.exec();
}


同时拷贝F:\soft\oracle\instantclient-basiclite-nt-12.2.0.1.0\instantclient_12_2目录下的所有dll文件到程序运行目录如下图:

原文链接:https://www.f2er.com/oracle/210038.html

猜你在找的Oracle相关文章