• QT oracle


    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

  • 相关阅读:
    元类,单例模式
    面向对象高阶
    类的三大特性---封装以及Property特性
    c# 中的string(神奇的string)
    c#中的equal和getHashCode
    linq中的Distinct的使用(附带IComparable和IComparer的复习和使用)
    flex布局完整示例
    flex布局中flex-basis的理解
    CSS两端对齐的效果;
    理解c#中扩展性代码
  • 原文地址:https://www.cnblogs.com/ruiy/p/15671807.html
Copyright © 2020-2023  润新知