Oracle数据库与QOIC

3 篇文章 0 订阅

本文首发在我的个人博客 “宅到没朋友”,欢迎来玩!

本文介绍如何安装Oracle 19c数据库,如何生成QOIC驱动使得Qt可以连接到Oracle数据库。

Oracle数据库的下载与安装

1.访问Oracle官网下载数据库压缩包:

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

在这里插入图片描述

2.解压后安装:

双击setup进行安装,会比较慢,请耐心等待。

在这里插入图片描述

3.安装过程中的配置

具体选项用红框标注:

第1步:

在这里插入图片描述

第2步:

在这里插入图片描述

第3步:

在这里插入图片描述

第4步:

在这里插入图片描述

第5步:

安装过程会修改很多注册表,执行安装之前请关闭杀毒软件。

安装过程较长,请耐心等待。

在这里插入图片描述

在这里插入图片描述

完成安装,可以登录 https://localhost:5500/em 查看数据库状态。

在这里插入图片描述

查看Oracle应用及服务项:

在这里插入图片描述

查看数据库服务:

在这里插入图片描述

访问https://localhost:5500/em/
Username填写【sys】,密码填写安装时设置的【全局数据库口令】

在这里插入图片描述

4.解锁scott用户
使用 sqlplus / as sysdba 登录数据库

使用 conn scott/tiger 连接scott用户

出现 the account is locked 说明账户被锁定或账户不存在

使用 sqlplus / as sysdba 重新登陆数据库

使用 alert user scott account unlock; 解锁scott用户

出现 user scott does not exist 说明用户不存在

使用 conn sys/密码 as sysdba 重新登陆数据库

在oracle数据库的安装目录中找到scott.sql文件路径:

在这里插入图片描述

使用 @E:\Oracle\rdbms\admin\scott.sql 执行scott.sql文件

这样scott用户就被添加进来,

如果想修改scott的默认密码可以执行下面命令(先以sys权限登录:sqlplus / as sysdba)

修改scott的登录密码

SQL> alter user scott identified by tiger;你再拿scott/tiger来登录就可以了:

在这里插入图片描述

生成QOIC驱动

安装QT的过程略过,注意安装Qt的过程中把src选项勾上,默认是不选的

1.使用Qt打开安装目录下的项目 oci.pro ,每个人安装路径可能不一样,根据自己的情况更改,以我的安装目录演示:

D:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\oci

载入项目后直接运行,会报如下错误:

在这里插入图片描述

解决办法:

打开oci.pro文件

①将 QMAKE_USE += oci 替换成 QMAKE_LFLAGS +=E:\Oracle\bin\oci.dll

②在末尾添加
INCLUDEPATH += E:\Oracle\oci\include
LIBPATH += E:\Oracle\oci\lib\msvc

③E:\Oracle\是Oracle数据库的安装目录

在这里插入图片描述

改好之后重新构建oci项目,不会报错,有警告可以忽略。

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

将qsqloci.dlll(release版本)和qsqlocid.dll(debug版本)复制到Qt的安装目录(D:\Qt\Qt5.13.1\5.13.1\mingw73_64\plugins\sqldrivers),复制到哪个编译器需要自己选择,我是用QT的mingw_64编译器,所以把这两个文件复制到QT的mingw_64编译器的文件中,有些同学需要在msvc编译器下运行程序,则将这两个文件复制到该编译器文件中即可。

在这里插入图片描述

在这里插入图片描述

编写Qt代码连接oracle数据库

新建一个QT窗口程序,

在pro文件中添加QT += sql,

在mainwindow.cpp文件中输入以下代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QtSql>
#include<QSqlDriver>
#include<QSqlDatabase>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
        db.setHostName("localhost");             //数据库服务器ip
        db.setPort(1521);                        //数据库端口号
        db.setDatabaseName("orcl");              //数据库名称
        db.setUserName("scott");                  //数据库用户名
        db.setPassword("tiger");                //数据库密码

        /*若输出列表中出现QOCI8和QOCI,则表示驱动加载成功*/
        QStringList drivers = QSqlDatabase::drivers();
        foreach(QString driver, drivers)
        qDebug() <<"\t" << driver;

        if(!db.open())
        {
            qDebug()<<"open failed";
            qDebug()<<db.lastError();
            return;
        }
        else
        {
            qDebug()<<"open succeeded";
            qDebug()<<db.driverName();
        }
}

MainWindow::~MainWindow()
{
    delete ui;
}

命令行输出以下语句说明驱动程序安装成功:

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值