Qt5.4.1连接odbc驱动操作达梦数据库

news2024/11/17 9:40:40

Qt5.4.1连接odbc驱动操作达梦数据库

  • 1 环境介绍
  • 2 Qt5.4.1 安装
    • 2.1 图形化界面安装Qt5.4.1
    • 2.2 配置Qt5.4.1 环境变量
    • 2.3 Qt5.4.1 生成 libqsqlodbc.so 并配置
      • 2.3.1 生成Makefile
      • 2.3.2 查看 libqsqlodbc.so 文件并配置
  • 3 配置Qt测试用例
  • 4 达梦数据库学习使用列表

1 环境介绍

  • CPU : x86/c86
  • 操作系统 : 麒麟V10 (SP2)
  • qt下载地址 - - 点击跳转
  • ODBC版本 : unixODBC 2.3.7
  • 达梦数据库版本 : 1-3-162-2024.07.03-234060-20108-ENT

2 Qt5.4.1 安装

2.1 图形化界面安装Qt5.4.1

  • 将安装包上传到 /opt 目录 使用root安装
chmod +x qt-opensource-linux-x64-5.4.1.run 
./qt-opensource-linux-x64-5.4.1.run 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 配置Qt5.4.1 环境变量

  • 末尾 4行 是 Qt 环境变量配置
vi /root/.bash_profile
[root@localhost opt]# cat /root/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH


export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms2407/bin"
export DM_HOME="/home/dmdba/dmdbms2407"

export QTDIR=/opt/Qt5.4.1/5.4/gcc_64
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/bin:$QTDIR/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$QTDIR/lib/pkgconfig:$PKG_CONFIG_PATH
[root@localhost opt]# 
  • 验证环境变量是否生效
[root@localhost test1]# echo $QTDIR
/opt/Qt5.4.1/5.4/gcc_64
[root@localhost test1]# echo $LD_LIBRARY_PATH
/opt/Qt5.4.1/5.4/gcc_64/bin:/opt/Qt5.4.1/5.4/gcc_64/lib:/opt/Qt5.4.1/5.4/gcc_64/lib:/opt/Qt5.4.1/5.4/gcc_64/lib::/home/dmdba/dmdbms2407/bin:/home/dmdba/dmdbms2407/bin:/home/dmdba/dmdbms2407/bin:/home/dmdba/dmdbms2407/bin:/home/dmdba/dmdbms2407/bin
[root@localhost test1]#
  • 查询 Qt5.4.1 版本
[root@localhost test1]# qmake --version
QMake version 3.0
Using Qt version 5.4.1 in /opt/Qt5.4.1/5.4/gcc_64/lib
[root@localhost test1]# 

2.3 Qt5.4.1 生成 libqsqlodbc.so 并配置

  • 实际环境可能会碰到各种报错 , 一言难尽
  • libqsqlodbc.so - - 点击下载

2.3.1 生成Makefile

  • 逐行执行
cd /opt/Qt5.4.1/5.4/gcc_64/bin

./qmake "LIBS+=-L/usr/lib64 -lodbc" /opt/Qt5.4.1/5.4/Src/qtbase/src/plugins/sqldrivers/odbc/odbc.pro

make
  • 结束时末尾日志 :
../gcc_64/include/QtCore/qvector.h:502:1: ????????????defined???????????????? [-Wexpansion-to-defined]
 #if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../gcc_64/include/QtCore/qvector.h:570:1: ????????????defined???????????????? [-Wexpansion-to-defined]
 #if QT_SUPPORTS(UNSHARABLE_CONTAINERS)
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
rm -f libqsqlodbc.so
g++ -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,/opt/Qt5.4.1/5.4/gcc_64 -Wl,-rpath,/opt/Qt5.4.1/5.4/gcc_64 -Wl,-rpath,/opt/Qt5.4.1/5.4/gcc_64/lib -shared -o libqsqlodbc.so .obj/main.o .obj/qsql_odbc.o .obj/moc_qsql_odbc_p.o  -L/usr/lib64 -lodbc -L/opt/Qt5.4.1/5.4/gcc_64/lib -lQt5Sql -lQt5Core -lpthread  
mv -f libqsqlodbc.so /plugins/sqldrivers/ 
[root@localhost bin]# 

2.3.2 查看 libqsqlodbc.so 文件并配置

[root@localhost bin]# ls /plugins/sqldrivers/
libqsqlodbc.so
[root@localhost bin]# 
[root@localhost bin]# cp /plugins/sqldrivers/libqsqlodbc.so /opt/Qt5.4.1/5.4/gcc_64/plugins/sqldrivers/
[root@localhost bin]# 
[root@localhost bin]# ls /opt/Qt5.4.1/5.4/gcc_64/plugins/sqldrivers/
libqsqlite.so  libqsqlmysql.so  libqsqlodbc.so  libqsqlpsql.so
[root@localhost bin]# 

3 配置Qt测试用例

  • .pro 相关配置测试用例 - - 点击下载
qmake "LIBS+=-L/usr/lib64 -lodbc" /opt/Qt5.4.1/5.4/test1/test1.pro
make
./test1
  • 末尾日志
[root@localhost test1]# qmake "LIBS+=-L/usr/lib64 -lodbc" /opt/Qt5.4.1/5.4/test1/test1.pro
[root@localhost test1]# ls
bak        release         test1.pro.user.c628fdd
debug     main.o               test1.pro       test1_zh_CN.ts
main.cpp  Makefile             test1.pro.user
[root@localhost test1]# make
g++ -c -pipe -O2 -std=c++0x -Wall -W -D_REENTRANT -fPIE -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_CORE_LIB -I. -I../gcc_64/include -I../gcc_64/include/QtSql -I../gcc_64/include/QtCore -I. -I../gcc_64/mkspecs/linux-g++ -o main.o main.cpp
In file included from ../gcc_64/include/QtCore/qbytearray.h:37:0,
                 from ../gcc_64/include/QtCore/qstring.h:38,
                 from ../gcc_64/include/QtCore/qcoreapplication.h:38,
                 from ../gcc_64/include/QtCore/QCoreApplication:1,
                 from main.cpp:1:
../gcc_64/include/QtCore/qrefcount.h:50:1: ????????????defined???????????????? [-Wexpansion-to-defined]

...中间省略...
...中间省略...
...中间省略...

../gcc_64/in
clude/QtCore/qalgorithms.h:148:40: ??????????????
 class QT_DEPRECATED_X("Use std::less") qLess
g++ -Wl,-O1 -Wl,-rpath,/opt/Qt5.4.1/5.4/gcc_64 -Wl,-rpath,/opt/Qt5.4.1/5.4/gcc_64/lib -o test1 main.o   -L/usr/lib64 -lodbc -L/opt/Qt5.4.1/5.4/gcc_64/lib -lQt5Sql -lQt5Core -lpthread 


[root@localhost test1]# ls
bak       main.cpp.240906.bak  release    test1.pro.user
debug     main.o               test1      test1.pro.user.c628fdd
main.cpp  Makefile             test1.pro  test1_zh_CN.ts
[root@localhost test1]# ./test1 
connect ok!
select ok!
[root@localhost test1]#

4 达梦数据库学习使用列表

  • 更多 达梦数据库学习使用列表 - - 点击跳转

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP加密解密功能设计

SAP加密解密功能设计 【场景】与外围系统对接时,出于信息安全等因素,经常需要对传输的信息做加密解密控制。 1. 公用类zcl_aes_utility *----------------------------------------------------------------------* * CLASS ZCL_AES_UTILITY DEFI…

Ubuntu 22.04 安装增强功能失败

安装的时候,总是失败,然后根据提示查看 log 猜测可能需要安装g12 ubuntu22.04.2 目前(until 23.6.25) gcc 的默认版本是 11.3.0, 有些 c 的特性无法享用.Launchpad toolchain test buildsLanchpad toolchain build 将 Lanchpad 上的 PPA 加入到 apt 搜…

用Python包加速你的视频剪辑:Tailor工具全解析

Tailor是一款视频智能裁剪、视频生成和视频优化的视频剪辑工具。目前的目标是通过人工智能技术减少视频剪辑的繁琐操作,让普通人也能简单实现专业剪辑人的水准!长远目标是让视频剪辑实现真正的AIGC! 当然,这是一份Python包的列表…

分组注解和自定义注解及分页查询

自定义注解的使用步骤 案例: 此时state需要进行的校验使用普通方式无法满足,需要我们根据需求进行自定义注解 创建一个注解 Documented//元注解 Retention(RetentionPolicy.RUNTIME)//元注解 Constraint(validatedBy {StateValidation.class}//指定提供…

DPDK基础入门(七):网卡性能优化

DPDK的轮询模式 运行在操作系统内核态的网卡驱动程序基本都是基于异步中断处理模式,而DPDK采用了轮询或者轮询混杂中断的模式来进行收包和发包。 任何包进入到网卡,网卡硬件会进行必要的检查、计算、解析和过滤等,最终包会进入物理端口的某…

最高1000万 各地模型和算法备案补贴政策一览

最高1000万 各地模型和算法备案补贴政策一览 2024年7月31日,成都市的人工智能产业再度引起关注。通过国家大模型备案的三家企业——海艺互娱、晓多科技和明途科技,获得了成都市经信局市新经济委的百万奖励。这一奖励源自成都发布的《成都市进一步促进人工…

手把手带你拿捏指针(1)

文章目录 一、内存和地址1.内存编号、地址和指针的关系2.对于编址的理解 二、指针变量和地址1.取地址操作符&2.指针变量3.解引用操作符(*)4.指针变量的大小 三、指针变量类型的意义1.指针解引用2.指针-整数3.void*指针 四、const修饰指针1.const修饰变量2.const修饰指针变量…

避障小车—51单片机

一、小车底盘组装 根据视频的安装步骤安装 二、 电机模块开发 2.1 L9110s概述 接通VCC,GND 模块电源指示灯亮, 以下资料来源官方,但是不对,根据下节课实际调试 IA1输入高电平,IA1输入低电平,【OA1 OB1…

【项目二】C++高性能服务器开发——日志系统(终章)

感谢sylar,感谢开源笔记的所有人~ 知识点备忘录switch结合宏定义简化获取时间戳获取行号获取线程ID 知识点备忘录 上一篇适配器后得到的输出是下面这样,在main函数中定义了需要的一切,和项目所需要的还相差很远,比如日志级别需要…

通过AI来创建一个_____html css网页制作成品 例子演示

使用AI 输入创建一个 html css网页制作成品 例 然后出来 好的,我将为您创建一个简单的HTML和CSS网页制作的示例。这个示例将包括基本的布局、文本样式和一些内联的CSS样式。 { "name": "dalle", "description": "A simple exa…

价值流思维:全面提升业务效率与企业竞争力的核心方法论

价值流驱动的企业架构转型 在数字化浪潮的推动下,企业面临前所未有的竞争压力和业务复杂性。如何在动态市场环境中保持竞争优势,已经成为企业管理者亟待解决的问题。《价值流指南》由The Open Group发布的企业数字化转型专业参考指南,系统化…

为啥有人累死累活,还是穷?

咱们今天不聊怎么发财,来聊聊“为啥有人穷”。一说穷,大家第一反应就是钱不够花,但少有人想到,穷还可能是精神上的、思想上的、道德上的。表面看缺钱,背后往往有更深的原因。 记得《我不是药神》里那假药贩子张长林吗&…

【Redis】Redis 典型应用 - 缓存 (Cache) 原理与策略

目录 Redis 典型应⽤ - 缓存 (cache)什么是缓存使⽤ Redis 作为缓存缓存的更新策略1)定期⽣成2)实时生成 缓存预热,缓存穿透,缓存雪崩 和 缓存击穿关于缓存预热 (Cache preheating)什么是缓存预热 关于缓存穿透 (Cache penetration)什么是缓存穿透为何产…

Kafka API操作

文章目录 1、 Kafka 基础API1_Topic基本操作 DML管理2_生产者3_消费者 sub/assign4_自定义分区策略5_序列化6_拦截器 2、Kafka API高级特性1_Offset自动控制2_Acks & Retries3_幂等性4_事务控制1、生产者事务Only2、消费者&生产者事务3、测试需要的三个消费者案例属性 …

【Rust】Mdbook插件开发和分享——多图浏览和多语言代码

mdbook-image-slider 受DevExpress文档多图浏览的启发,我开发这个插件,在查看多个图片和图片的描述的时候非常方便 项目地址:https://github.com/VinciYan/mdbook-image-slider.git 特点 鼠标置于图片查看区域时显示切换图片按钮鼠标点击图…

chapter14-集合——(collection)——day17

目录 499-集合介绍 500-集合体系图 背下来 501-Collection方法 502-迭代器遍历 itit(迭代器快捷键)(Ctrlj) 503-集合增强for 快捷I 504-测试题 499-集合介绍 500-集合体系图 背下来 单列集合 双列集合(键值对&am…

如何根据屋顶的面积和形状设计光伏板的排布?

首先我们得了解项目的具体的情况数据: 测量屋顶尺寸:准确测量屋顶的长、宽等数据,了解其面积大小 分析屋顶形状:观察屋顶是平顶、坡顶还是其他形状,这会影响排布方式。 支架的排布:要保证发电量的同时&a…

序列标注任务

序列标注任务 1.序列标注任务2.序列标注--中文分词2.1数据标注方法一2.2数据标注方法二 3.序列标注--NER3.1序列标注--CRF3.2篱笆墙解码3.3beam search3.4维特比解码3.5效率对比3.6评价指标 4.基于规则-NER4.1序列标注--文本加标点4.2序列标注--句子级别分类4.3实体抽取问题4.4…

田纳西州橡树岭全球最快的超级计算机名为Frontier

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【VuePress 个人博客搭建】

个人博客搭建免服务器 一、安装 VuePress1、创建文件夹并进入该目录2、初始化项目3、安装VuePress4、在 package.json 中修改 scripts5、创建目录和配置文件6、创建第一篇文档Hello VuePress7、 运行项目二、部署1、新建github 仓库2、在 config.js 添加 base 路径配置:3、创建…