当前位置: 首页 > news >正文

qtsql连接达梦数据库

odbc

window和linux都有odbc的中间件,可以通过odbc中间件配合qtsql连接数据库

  • windows下配置odbc
    在这里插入图片描述
  • linux配置odbc

apt install unixodbc unixodbc-dev

/etc/odbcinst.ini配置

[DM8 ODBC DRIVER]
Description=DM8 ODBC Driver
DRIVER=/opt/dmdbms/bin/libdodbc.so

/etc/odbc.ini配置

[dm8]
Description=DM8 Database
DRIVER=DM8 ODBC DRIVER
SERVER=localhost
TCP_PORT=5236
UID=SYSDBA
PWD=SYSDBA

isql -v dm8测试连接是否成功

qt

使用qt6 构建项目

aux_source_directory(. code)
find_package(Qt6 COMPONENTS REQUIRED Core Sql Gui Widgets Network PATHS d:/tools/qt/6.6.0/msvc2019_64/lib/cmake)add_executable(dameng ${code})
target_link_libraries(dameng Qt6::Core Qt6::Sql)

chatgpt提示的代码如下:

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QSqlError>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 添加数据库驱动QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");// 设置数据库文件路径db.setDatabaseName("dm");// 打开数据库if (!db.open()) {qDebug() << "Failed to open database:"<<db.lastError().text();return -1;}// 创建查询对象QSqlQuery query;// 执行查询语句if (!query.exec("SELECT * FROM \"SYS\".sysuser$")) {qDebug() << "Query failed: " << query.lastError().text();return -1;}QSqlRecord record = query.record();// 遍历查询结果while (query.next()) {for (int i = 0; i < record.count(); ++i) {qDebug() << record.fieldName(i) <<":"<< query.value(i).toString();}qDebug()<<"--------------------";}// 关闭数据库db.close();return a.exec();
}

exception

  • no driver load

qtsql的driver在plugin的sqldriver目录里面,通过动态加载目录里面的文件加载driver

  • 加密模块加载失败, HY000 QODBC: Unable to connect

达梦数据库bin文件中,拷贝ssleay32、libeay32两个文件

  • isql 提示[ISQL]ERROR: Could not SQLConnect

检查/etc/odbc.ini中的配置是否正确,driver和odbcinst.ini的名称一致

  • 提示libdodbc.so找不到

ldd libdodbc.so 是否有找不到的文件,需要配置环境变量LD_LIBRARY_PATH

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【CANoe使用大全】——cdd导入CANoe流程详解
  • 使用PowerShell自动化Windows系统管理任务
  • JavaEE从入门到起飞(九) ~Activiti 工作流
  • 【前缀和算法】--- 一维和二维前缀和模板
  • Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
  • 实时洞察应用健康:使用Spring Boot集成Prometheus和Grafana
  • 极速文件预览!轻松部署 kkFileView 于 Docker 中!
  • OSPF 开放式最短路径优先协议
  • 数据结构-递归算法-第四天
  • 8.22 万灵药(SAM + Trie + 树剖 + 线段树)
  • STL—list—模拟实现【迭代器的实现(重要)】【基本接口的实现】
  • 记录 Ant Design Table 组件使用的问题
  • 深入理解HTTP的基础知识:请求-响应过程解析
  • Google Ads投放 | 如何分析竞争对手的谷歌广告?
  • 【仿真与实物设计】基于51单片机设计的打地鼠游戏机——程序源码原理图proteus仿真图PCB设计文档演示视频元件清单等(文末工程资料下载)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Android优雅地处理按钮重复点击
  • Computed property XXX was assigned to but it has no setter
  • HTTP请求重发
  • MySQL几个简单SQL的优化
  • oschina
  • PermissionScope Swift4 兼容问题
  • Rancher如何对接Ceph-RBD块存储
  • underscore源码剖析之整体架构
  • Vue.js 移动端适配之 vw 解决方案
  • 初识 beanstalkd
  • 代理模式
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 微信小程序设置上一页数据
  • 小试R空间处理新库sf
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​ubuntu下安装kvm虚拟机
  • #单片机(TB6600驱动42步进电机)
  • (13)DroneCAN 适配器节点(一)
  • (160)时序收敛--->(10)时序收敛十
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (day 12)JavaScript学习笔记(数组3)
  • (LeetCode) T14. Longest Common Prefix
  • (ZT)薛涌:谈贫说富
  • (二)原生js案例之数码时钟计时
  • (剑指Offer)面试题34:丑数
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)shell调试方法
  • (转载)虚函数剖析
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ./和../以及/和~之间的区别
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET 反射的使用
  • .NET连接MongoDB数据库实例教程
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .pop ----remove 删除