qt编译oracle驱动,qt 5.12 连接 oracle 数据库示例代码

qt 5.12.5 编译 oracle11g R2 驱动

  1. 下载安装oracle客户端 oracle11g R2 64位
  2. 安装qt 5.12

  3. D:\alantop_sde\Qt\5.12.5\Src\qtbase\src\plugins\sqldrivers\oci

    打开 oci.pro

    TARGET = qsqloci?HEADERS += $$PWD/qsql_oci_p.hSOURCES += $$PWD/qsql_oci.cpp $$PWD/main.cpp?#QMAKE_USE += oci?darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ?OTHER_FILES += oci.json?PLUGIN_CLASS_NAME = QOCIDriverPlugininclude(../qsqldriverbase.pri)?QMAKE_LFLAGS += D:/oracle11g/product/11.2.0/client_1\BIN/oci.dllINCLUDEPATH += D:/oracle11g/product/11.2.0/client_1/oci/includeLIBPATH += D:/oracle11g/product/11.2.0/client_1/oci/lib/msvc
#QMAKE_USE += ociQMAKE_LFLAGS += D:/oracle11g/product/11.2.0/client_1\BIN/oci.dllINCLUDEPATH += D:/oracle11g/product/11.2.0/client_1/oci/includeLIBPATH += D:/oracle11g/product/11.2.0/client_1/oci/lib/msvc?

操作系统,数据库,编译器都选择64为的 使用MinGw64

编译出现错误,修改源码

修改2个地方 修改源码 qsql_oci.cpp 1599行1. 修改函数名称 OCIBindByPos2改为OCIBindByPos2. 把bindColum.lengths 变量做指针转换 reinterpret_cast<ub2*>(bindColumn.lengths),

修改后编译后,在 D:\plugins\sqldrivers 目录下生成驱动

建立qt oracle oci库 这个库需要拷贝到工程目录下

#include <QCoreApplication>#include <QSqlDatabase>#include <QtGlobal>#include <QtDebug>#include <QSqlError>#include <QSqlQuery>#include <QSqlRecord>#include <QSqlField>?int main(){    qDebug()<<"Available drivers:";??    QStringList drivers=QSqlDatabase::drivers();??    foreach(QString driver,drivers)??    qDebug()<<driver;?    QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");?    qDebug() << "QT DB driver?" << db.isValid();?    bool    m_bIsConn;?    db.setHostName("10.2.3.102");    db.setPort(1521);    db.setDatabaseName("");    db.setUserName("");    db.setPassword("");    if(db.open())    {         qDebug()<<QString("连接成功");         m_bIsConn = true;    }    else    {         qDebug()<<"连接失败";         m_bIsConn = false;         qDebug()<<db.lastError();    }??    QSqlQuery query("SELECT * FROM tables");    while (query.next())    {        int iProNo = query.value(0).toInt();        QString sProName = query.value(1).toString();        qDebug()<< sProName;?    }???    if(m_bIsConn)    {        QSqlQuery query;        bool bSuccess = query.exec("select * from DT_BASE_DTLS");        if(bSuccess)        {            QSqlRecord rec = query.record();          qDebug()<<("TableName的字段个数:")<<rec.count();            QSqlField filed = rec.field(0);          qDebug()<<("字段名称:")<<rec.field(0).name()<<("字段类型:")<<rec.field(0).type()<<("字段值:")<<rec.field(0).value();          qDebug()<<("段名称:")<<rec.field(1).name()<<("字段类型:")<<rec.field(1).type()<<("字段值:")<<rec.field(1).value();          qDebug()<<("字段名称:")<<rec.field(2).name()<<("字段类型:")<<rec.field(2).type()<<("字段值:")<<rec.field(2).value();          qDebug()<<("字段名称:")<<rec.field(3).name()<<("字段类型:")<<rec.field(3).type()<<("字段值:")<<rec.field(3).value();        }        else        {          //qDebug()<<tr("error");        }    }???}?

原文地址:https://www.cnblogs.com/alantop/p/12170774.html

时间: 2024-09-29 05:05:53

qt编译oracle驱动,qt 5.12 连接 oracle 数据库示例代码的相关文章

Qt编译mysql驱动

Qt连接MySQL 分类: Qt 数据库 2013-02-27 20:57 1452人阅读 评论(0) 收藏 举报 一般情况下,qt只带了qsqlite4和qodbc两种驱动,如果在安装qt时,你没有添加qt -mysq参数,那么意味着,在你的程序中不能直接使用mysql数据库. 那么你就需要安装这个插件. 感谢jpzjpz提供的详细安装过程! 网址为:http://dev.wo.com.cn/bbs/viewthread.jsp?tid=140945&extra=page%3D1 我这里还是在

免安装Oracle客户端使用PL/SQL连接Oracle的2种方法

作者:netshuai  来源:博客园  发布时间:2009-10-23 09:19  阅读:171 次  原文链接   [收藏] 方法一: 大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Oracle呢? 其实我一直想这样做,因为这个客户端实在太让人讨厌了!!!不但会安装一个JDK,而且还会把自己放在环境变量的最前面,会造成不小的麻烦. 其实我之前问过很多人的,但是他们都说一定需要安装Oracle客户端的.......直

oracle 11g Enterprise Manager 无法连接到数据库实例

今天要学习使用OEM 结果出现了两个问题! 第一个问题:应该在哪里打开OEM呢? 解决:好找了半天,才得知只需使用IE便可打开OEM了, 使用的网址为:https://localhost:1158/em/ 好的,当打开这个网址的时候呢,又遇到了第二个问题:网页提示"无法连接到数据库实例" 又好找了半天,网上确实有很多网友已经给出了解决方案,但是到了我这里总是提示dbhome_1中的某些文件不能backup! 解决:据网络上的答案,都是用CMD命令行来操作的,而我只是通过"运行

笨鸟先飞随笔:ADO.NET中VS连接Sqlserver数据库的代码

在main函数中添加的连接Sqlserver数据库的代码如下所示: 以下代码用于Sqlserver验证方式 首先需要引用命名空间 using system.System.Data.SqlClient; static void Main(string[] args) { string constring = "server=local;database=teaching;uid=sa;pwd=123456"; using (SqlConnection conn = new SqlConn

qt编译QOCI驱动连接oracle数据库

1.打开\Qt\Qt5.7.0\5.7\Src\qtbase\src\plugins\sqldrivers\oci\oci.pro工程文件 2.修改pro文件配置, 添加oracle源码目录INCLUDEPATH += D:\oracle\product\11.2.0\client_1\oci\include LIBPATH += D:\app\Xiao\product\11.2.0\client_1\oci\lib\msvc 注释掉QMAKE_LILAGS +=oci.dll(忘记这个是不是自

Window下 Qt 编译MySQL驱动(居然用到了动态库格式转换工具)

一步步在Window下开发Qt 今天开始安装MySQL,看了些关于MySQL安装的博文,方法大致相同,但是遇到的细节问题各有不同,或者没有讲全面,下面来说说个人的安装过程及遇到的问题. 1.首先下载,MySQL官网下载地址:http://www.mysql.com/downloads/installer/ 2.安装时,会提示安装.netFramework4环境,这里提供一个下载链接:http://dldx.csdn.net/fd.PHP?i=537939463366842&s=17682a852

C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase数据库的代码集

C#连接六类数据库的代码集 本文列出了C#连接Access.SQL Server.Oracle.MySQL.DB2和SyBase六种不同数据库的程序源码和需要注意的点. 1.C#连接Access 程序代码: Code using System.Data;using System.Data.OleDb; .. string strConnection="Provider=Microsoft.Jet.OleDb.4.0;"; strConnection+[email protected]&

oracle 安装及用plSql连接本地数据库

1.首先安装本地oracle,这里我用的是XE10g的,具体安装就不演示了,一路傻瓜无脑装,用户名密码习惯设为root/root: 2.安装plsql,不习惯英文的可以紧接着装个中午插件,不做赘述: 3.连接本地数据库,,用户名:root ;口令(即密码):root ;数据库(本地):XE ;连接为:SYSDBA :点击确定,你会发现神奇的连上了;,

笨鸟先飞随笔:ADO.NET中VS连接Sqlserver数据库的代码(Windows身份验证方式补充)

上一篇只写到了数据库Sqlserver连接方式下的连接代码在这里对Windows验证方式的连接做一下补充: 关于VS连接Sqlserver数据库windows验证方式的操作方式: 01.VS窗口中上方菜单依次选择数据 02.添加新数据源 03.然后选择数据库后点击下一步 如下图所示: 04.选择数据集然后点击下一步 如下图所示: 05.点击新建连接,弹出对话框 如下图所示: 06.数据源显示为Microsoft SQL server SqlClient 如果不是则需要点击更改修改为Microso