| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux Qt连接达梦数据库 -> 正文阅读 |
|
[系统运维]Linux Qt连接达梦数据库 |
? ? ? ?最近因为工作需要,需要使用Qt连接达梦数据库,在Linux上比较麻烦,首先需要自己编译UnixODBC和Qt的QODBC库,其次还有各种环境配置。这里在安装好后记录一下,以后找起来方便。 ????????先说下我的电脑是麒麟V10系统+飞腾的CPU,Qt的版本是5.9.9,编译Qt的源码的文章可以看我的另一篇文章:银河麒麟V10 + 飞腾CPU编译安装 Qt5.9.9_Sakuya__的博客-CSDN博客_中标麒麟安装qt5.9 ODBC的安装和配置? ? ? ? 官网下载UnixODBC:unixODBC ? ? ? ? 解压下载的压缩包:
? ? ? ? 配置configure文件,通过--prefix设置安装的目录:
? ? ? ? 编译:
? ? ? ? 安装:
? ? ? ? ?安装完后会在安装目录下的etc目录中生成odbc.ini 和 odbcinst.ini两个配置文件,可以使用下面的命令查看配置文件的路径:
? ? ? ? 如果查看的配置文件的路径和实际所在的路径不同的话,需要重新配置ODBCINI及ODBCSYSINI两个环境变量,使用命令:
????????执行这两个命令只是临时设置了路径,重启电脑时还需要再设置一遍,想要永久设置,修改/etc/profile文件,把这两行加到文件末尾,然后执行source /etc/profile使设置生效。 ????????修改驱动信息,/usr/local/etc/odbcinst.ini做如下修改:
????????/usr/local/etc/odbc.ini做如下修改?
? ? ? ? 这里红色标出的几个地方需要一样,最好设置成和你的数据库名一样,否则在Qt连接数据库的时候会因为数据库名不对报错。 ? ? ? ? 修改好后,可以使用下面的命令测试是否能连接成功,下图是连接成功的提示:
????????如果出现下面的报错,说找不到libdodbc.so,是因为libdodbc.so依赖的库文件没找到,可以把/usr/local/DM8/bin下的libdmdpi.so和libdmfldr.so这两个libdodbc.so依赖的库复制到/usr/lib下 ????????如果报错不能加载libodbcinst.so,可以把/usr/local/lib下的libodbcinst.so复制到/usr/lib目录下 ? ? ? ? 上面这两个问题,实质上都是因为环境变量的路径里找不到这几个库文件,所以也可以通过设置/usr/local/DM8/bin和/usr/local/lib为环境变量的方法,以确保可以找到这几个库。 ? ?编译QODBC????????在Linux系统中,由于没有自带ODBC驱动,所以编译Qt源码时,也不会自动编译QODBC,需要自己包含上UnixODBC的头文件然后编译,再把libqsqlodbc.so拷贝到Qt的路径下。没有这个库的话,在调用QSqlDatabase::addDatabase("QODBC")的时候会报错,告诉你缺少QODBC驱动。 ????????首先进入Qt的源码路径下的qtbase/src/plugins/sqldrivers,修改里面的qsqldriverbase.pri文件,修改include的路径为下图中的路径: ? ? ? ? ?再进入Qt的源码路径下的qtbase/src/plugins/sqldrivers/odbc,修改里面的odbc.pro文件,注释掉里面的QMAKE_USE += odbc ?????????然后进入Qt的安装目录下的bin目录,也就是你的qmake所在的目录,执行:
????????如果编译时报如下错误:
????????说明文件夹权限是加密的,你需要修改其权限:进入项目对应的文件夹,修改其文件和子文件的权限为可读可写可执行:
????????执行完qmake的命令后,会生成一个MakeFile文件,然后执行make即可。默认编译好生成的libqsqlodbc.so文件会放在/plugins/sqldrives下,然后我们把它复制或移动到Qt安装目录下的plugins/sqldrives下就可以了,执行命令:
????????到这里就算是编译完成QODBC了。 Qt连接达梦数据库?? 首先先要在pro文件中加入:
????????连接数据库:
????????在Qt连接数据库时,如果出现报错:
????????说明setDatabaseName数据库名设置的不对,这里的数据库名不是你要连接的数据库名,而是DSN名。DSN名就是上面配置文件中我标记出来的红色字体,检查odbc.ini和odbcinst.ini中的配置。 ?????????清空表,初始化测试环境:
????????插入数据:
? ? ? ? 删除数据:
????????更新数据:
? ? ? ? 查询数据:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 14:25:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |