Qt5.5.1和Qt5.3.2编译OCI驱动教程及验证方法

我们都知道oracle数据库的强大,并且好多企业或者教学用到数据库时都会推荐使用。但是Qt因为版权问题没有封装oracle数据库专用驱动,网上也有一大堆说法和教程,但是或多或少的都有问题。下面废话不多少,直接上教程。

注:本教程采用Qt5.5.1版本来讲下Qt5.5.1和Qt5.3.2编译OCI驱动过程,其他版本请对号入座。

我的Qt版本是Qt5.5.1,安装路径是默认的 C:\Qt\Qt5.5.1。

我的oracle 11g客户端安装路径: D:\app\client\product\11.2.0\client_1。

一、我们安装oracle11g,oracle下载与安装我不再累赘,网上一大堆安装方法。

二、我们打开环境变量在系统变量的PATH中添加

然后保存退出,Win+R打开运行输入cmd,在“命令提示符cmd”中输入qmake -v与mingw32-make -v查看一下版本号和输出路径是不是我们刚刚设置的,因为很多人电脑上都装了好多版本的Qt,当然这里我为了方便把其他版本的都卸载了。

不要小看这些小细节,他们看起来虽有些微不足道,但是当你编译出了问题后,你还真不知道从哪下手,所以要切记这一点,直接将你想要的设到环境变量中去。

三、打开oci文件夹:C:\Qt\Qt5.5.1\5.5\Src\qtbase\src\plugins\sqldrivers\oci

四、打开oci工程,在Pro文件中添加:

INCLUDEPATH += D:\app\client\product\11.2.0\client_1\oci\include
LIBPATH += D:\app\client\product\11.2.0\client_1\oci\lib\msvc

五、构建 → 重新构建项目 “oci”

在Qt5.3.2中:

等待程序构建完毕后,打开C:\Qt\Qt5.3.2\5.3\Src\qtbase\plugins\sqldrivers,可以看到有四个文件将文件全部复制到C:\Qt\Qt5.3.2\5.3\mingw482_32\plugins\sqldrivers中。

在Qt5.5.1中:

等待程序构建完毕后,打开C:\plugins\sqldrivers,可以看到有四个文件将文件全部复制到C:\Qt\Qt5.5.1\5.5\mingw482_32\plugins\sqldrivers中。

有人会说我找不到这个C:\Qt\Qt5.3.2\5.3\Src\qtbase\plugins\sqldrivers路径,这个路径在新版本中Qt官方改了,就像Qt5.5.1的这个路径默认在Qt安装的根目录里面,就是C:\plugins\sqldrivers.

Qt5.5.1和Qt5.3.2编译OCI驱动教程,就到这里结束了。

如何验证?网上验证方法一大堆,在这我也贴出一个。

 1 #include "widget.h"
 2 #include <QStringList>
 3 #include <QSqlQuery>
 4 #include <QSqlError>
 5 #include <QSqlDatabase>
 6
 7 #include <QMessageBox>
 8 #include <QDebug>
 9 /***********************************************
10  * 作者:夜潇
11  * QQ:1285015525
12  * 博客:http://www.cnblogs.com/CLXiao-1029/
13  * ********************************************/
14
15 Widget::Widget(QWidget *parent)
16     : QWidget(parent)
17 {
18     //查看所有数据库驱动
19     QStringList lists = QSqlDatabase::drivers();
20
21     for(int i = 0 ;i < lists.size(); ++ i)
22     {
23         qDebug() << lists.at(i);
24     }
25     //载入oracle驱动,打开本地数据库
26     QSqlDatabase db2=QSqlDatabase::addDatabase("QOCI");
27     db2.setHostName(tr("127.0.0.1"));//如果连接远程数据库,就把IP换成对方的,并且远程防火墙是关闭的
28     db2.setPort(1521);
29     db2.setUserName(tr("scott"));//这个用户是默认的,如何打开这个用户,自己百度
30     db2.setPassword(tr("1029"));//这个是我的口令
31     db2.setDatabaseName(tr("orcl"));
32     if(!db2.open())
33     {
34         QMessageBox::information(this, tr("提示"), tr("Oracle数据库连接失败!"));
35         qDebug() <<"error_Oracle:\n" << db2.lastError().text();
36         return;
37     }
38     else
39     {
40         QMessageBox::information(this, tr("提示"), tr("Oracle数据库连接成功!"));
41         QSqlQuery query;
42         bool isok = query.exec("select * from xsb");
43         if(!isok)
44         {
45             db2.close();
46             return;
47         }
48         query.next();
49         QString Str1 = query.value(1).toString();
50         QString Str2 = query.value(2).toString();
51         QString Str3 = query.value(3).toString();
52         QString Str4 = query.value(4).toString();
53         QString Str5 = query.value(5).toString();
54         QString Str6 = query.value(6).toString();
55         QString Str7 = query.value(7).toString();
56         qDebug() << QObject::tr("xsb:" )<< Str1<<Str2<< Str3<<Str4<< Str5<<Str6<<Str7;
57     }
58
59 }

有问题请留言,或者发邮箱给我:[email protected]

时间: 2024-07-31 14:34:55

Qt5.5.1和Qt5.3.2编译OCI驱动教程及验证方法的相关文章

Qt5.8以上版本编译Oracle数据库的OCI驱动教程

在前一篇的文章中我已经发过一个相似的文章,详情请点击:Qt5编译oracle驱动教程. 在那一篇文章中已经可以解决了Qt5的常用版本的Oracle数据库驱动的支持,但是在新的Qt开发工具中那种方法竟然失效了,具体出现在Qt5.7.1之后的版本. 这次我带来Qt5.8.0的编译教程,Qt5.9的版本同样适用. Qt版本是Qt5.8.0,安装路径是默认的 C:\Qt\Qt5.8.0,Oracle客户端版本oracle 11g 安装路径是 D:\app\Xiao\product\11.2.0\clie

Qt编译好的OCI驱动下载

在上文,我累赘了一大堆,给大家写了一篇Qt如何编译OCI驱动,在这里自然就不再累赘了,直接附上编译好的文件供大家下载: <Qt5.3.1+OCI驱动下载地址> 有经济来源的请传送:http://download.csdn.net/detail/u012433546/9922424 无经济来源的请传送:链接:http://pan.baidu.com/s/1boKG9lH 密码:7yj5 <Qt5.3.2+OCI驱动下载地址> 有经济来源的请传送:http://download.csd

qt (5.60/5.70) 编译 QOCI 驱动

在学习qt过程中,遇到了编译oracle驱动的问题,在开源协议下没有编译好的,那就只能自己来了 虽然网上已经有了很多这种文章 但是大多都用不了,摊手.jpg win7 (64bit)  oracle 11g (r2)  qt (5.60/5.70) 通过 qt  oci源码目录 D:\Qt5.7.0\5.7\Src\qtbase\src\plugins\sqldrivers\oci 直接双击打开oci.pro文件 切换到release模式(暂时未发现和debug模式区别) 执行,弹出对话框,不用

Qt编译Oracle OCI驱动

工作中经常用到Oracle,而默认情况下Qt只有Sqlite和ODBC驱动,网上有相应的驱动安装介绍,自己实验可行: QT环境:Qt  5.0.2 /MinGW4.7.2/WIN7 32bit 打开Qt Command Prompt,分别执行以下命令,以编译Oracle驱动: set INCLUDE=%include%;C:\oracle\product\10.2.0\db_1\OCI\include;C:\Qt\Qt5.0.2\Tools\MinGW\includeset LIB=%lib%;

linux下安装编译网卡驱动的方法

安装linux操作系统后发现没有网卡驱动,表现为 system → Administration → Network下Hardware列表为空. 以下为安装编译网卡驱动的过程,本人是菜鸟,以下是我从网上找的资料进行整理,并实际操作的过程,仅供借鉴.  一.检测linux系统内核版本和网卡类型,相关命令如下: uname -r                    查看linux内核版本 (uname -a 可显示所有信息)lsmod                        设备加载情况 l

小白编译openwrt固件教程(转)

本文转自:http://hi.baidu.com/websfx/item/55072a3babdd934a3175a17c 小白编译openwrt固件教程 编译openwrt固件并没有想象的那么复杂,我也是个小白,以下内容是我将网络上的编译教程稍微进行了一下整合.因为我发现很多编译教程没有说明如何更改flash相关配置. 安装ubuntu,不赘述. 注意在安装完成后,root不能直接登录,需要设置密码,设置方法,自己百度一下. 如果是虚拟机安装,将虚拟机的网卡配置为桥接模式: *********

反编译classes.dex的工具和方法

Dex是Android系统中可以在Dalvik虚拟机上直接运行的文件格式.java源代码经过ADT的复杂编译后转换成Dex文件,这是一个逐步优化的过程.Dex文件的指令码就是Dalvik虚拟机专有的一套指令集,专门为嵌入式系统优化过,相比标准java的.class文件,它体积小,运行效率高.纯手打! 反编译classes.dex的工具和方法 需要两个工具baksmali.jar和smali.jar,电脑需配置好java环境 Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalv

centos编译libpng报错,解决方法

/usr/local/lib/libz.a: could not read symbols: Bad value 一般是64 位 电脑才会出现. 解决方法如下: 1 cd zlib-1.2.3 //进入zlib目录 2 3 CFLAGS="-O3 -fPIC" ./configure //使用64位元的方法进行编译 4 5 make 6 7 make install 8 9 make clean centos编译libpng报错,解决方法,布布扣,bubuko.com

Android反编译工具介绍与简单实用方法

Android反编译工具介绍与简单实用方法 Android反编译的目的无非就是为了看到APK的xml.资源和代码: 得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar classes.dex classes.jar生成jar文件 --> [可选的解压jar文件] -->使用XJad或者JDCompiler查看源代码 得到XML的方式: 方式1:直接解压APK文件 --> 通过axmlprinter工具查看XML文件(这种方