Qt使用Oracle数据库的方式

因为版权问题,Qt本身不自带Oracle数据库的驱动,因此如果想要借用Qt操作Oracle数据库,需要手动进行编译。

使用Qt编译支持oracle的驱动库

编译的前期准备是:源码 + Oracle客户端
步骤如下:

  1. 打开oci文件夹(目录参考C:\Qt\Qt5.5.1\5.5\Src\qtbase\src\plugins\sqldrivers\oci,具体的目录根据自己的Qt安装路径决定)

  2. 打开oci工程,并且在oci工程中添加如下图所示的两行代码(第一行是Oracle数据的include的路径,第二行是Oracle数据库的.lib文件的路径),这个路径也需要根据实际的安装路径来设置
    在这里插入图片描述

  3. qmake,然后重新构建项目

  4. 将生成的.dll文件添加到Qt的driver中(路径可能不同,可以使用everything来进行文件查找)

编译Oracle数据库驱动参考链接1
编译Oracle数据库驱动参考链接2

Qt使用Oracle数据库注意点

对于一般的数据库,即便是像access这样比较特殊的数据库,都可以通过单独设置主机名、端口、数据库名称的方式连接,但是对于Oracle数据库却不是这样。
因为oracle 12c 使用多个插拔数据库,不能采用传统的设置端口、主机名称、数据库名称的方式连接oracle,直接通过设置数据库名称为:hostname:port/pdb_name的方式访问,即:主机地址:端口/pdb数据库名称方式访问oracle数据库。
如果按照普通的数据库的方式去设置Oracle,那么会报如下的错误:

ORA-12505, TNS:listener does not currently know of SID

对于Qt而言正确使用Oracle的方式是:hostname:port/dbName,如下

db.setDatabaseName("127.0.0.1:1521/dbName");

具体的使用差别如下图所示:
在这里插入图片描述

Qt使用Oracle数据库参考链接

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页