www.cnblogs.com/ruiyqinrui

开源、架构、Linux C/C++/python AI BI 运维开发自动化运维。 春风桃李花 秋雨梧桐叶。“力尽不知热 但惜夏日长”。夏不惜,秋不获。@ruiY--秦瑞

python爬虫,C编程,嵌入式开发.hadoop大数据,桉树,onenebula云计算架构.linux运维及驱动开发.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

QT连接ORACLE数据库

 
 

一 资源下载和安装

   注意:在安装Qt的过程中切记把 src选项勾上,默认是不选的。

二 编译生成ORACLE驱动

1、使用Qt打开安装目录下的项目oci.pro,(D:\QT\QT5.9.3\5.9.3\Src\qtbase\src\plugins\sqldrivers\oci)每个人安装路径可能不一样,根据自己的情况更改。

2、直接编译项目oci,会出现以下错误

解决办法:
 (1)将 QMAKE_USE += oci 替换成 QMAKE_LFLAGS +=D:\Oracle\product\11.2.0\dbhome_1\BIN\oci.dll
 (2)在末尾添加INCLUDEPATH += D:\Oracle\product\11.2.0\dbhome_1\OCI\include
                            LIBPATH += D:\Oracle\product\11.2.0\dbhome_1\OCI\lib\MSVC
 (3)D:\Oracle\product\11.2.0\dbhome_1\是Oracle数据库的安装目录

3.然后点击状态栏上的 构建(B)->重新构建项目“oci”,没有报错,警告忽略。

4.在根目录D:\plugins\sqldrivers找到以下四个文件。注:也可能在C盘的根目录下。

5.将qsqlocid.dll和qsqloc.dll复制到Qt的安装目录(D:\QT\QT5.9.3\5.9.3\mingw53_32\plugins\sqldrivers)

6.至此,准备工作完成。

三 配置ORACLE 11G

1.创建实例

2.配置监听

注意:必须进行这两步才能正常连接数据库。

参考地址:http://blog.itpub.net/31535677/viewspace-2153880/

四 QT编写代码连接ORACLE数据库

1.在项目中的pro文件加上 QT += sql

2.代码

  1.  
    #include "mainwindow.h"
  2.  
    #include "ui_mainwindow.h"
  3.  
     
  4.  
    #include <QtSql>
  5.  
    #include<QSqlDriver>
  6.  
    #include<QSqlDatabase>
  7.  
     
  8.  
    MainWindow::MainWindow(QWidget *parent) :
  9.  
    QMainWindow(parent),
  10.  
    ui(new Ui::MainWindow)
  11.  
    {
  12.  
    ui->setupUi(this);
  13.  
     
  14.  
    QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
  15.  
    db.setHostName("localhost"); //数据库服务器ip
  16.  
    db.setPort(1521); //数据库端口号
  17.  
    db.setDatabaseName("orcl"); //数据库名称
  18.  
    db.setUserName("scott"); //数据库用户名
  19.  
    db.setPassword("1234"); //数据库密码
  20.  
    if(!db.open())
  21.  
    {
  22.  
    qDebug()<<"open failed";
  23.  
    qDebug()<<db.lastError();;
  24.  
    return;
  25.  
    }
  26.  
    else
  27.  
    {
  28.  
    qDebug()<<"open succeeded";
  29.  
    qDebug()<<db.driverName();
  30.  
    }
  31.  
    }
  32.  
     
  33.  
    MainWindow::~MainWindow()
  34.  
    {
  35.  
    delete ui;
  36.  
    }

五 疑难

1.问题:SQL Plus出现ORA-12560: TNS: 协议适配器错误问题
   解决:检查注册表。win+R ,输入regedit。找到HKEY_LOCAL_MACHINE->SOFTWARE->Oracle(64位系统安装64位数据库)或者HKEY_LOCAL_MACHINE->SOFTWARE->WOW6432Node->Oracle(64位系统安装32位数据库),找到KEY_OraDb11g_home1,找到ORACLE_SID,查看下它的数值数据,将它改为创建实例中的全局数据库名,我的是orcl。
  参考:https://blog.csdn.net/sixandsix/article/details/69396784

posted on 2021-12-10 14:48  秦瑞It行程实录  阅读(184)  评论(0编辑  收藏  举报
www.cnblogs.com/ruiyqinrui