QT通过ODBC连接GBase 8s数据库(Windows)示例
示例环境:
- 操作系统:Windows 10 64位
- 数据库及CSDK版本:GBase 8s V8.8_3.0.0_1 64位
- QT:5.12.0 64位
1,CSDK安装及ODBC配置
1.1,免安装版CSDK
下载免安装版的CSDK驱动,地址:https://gbasedbt.com/dl/odbc/GBase8s_3.0.0_1-Win64-ODBC-Driver.zip
解压到不含中文的目录下,如D盘根目录下,生成gbase8s-odbc-driver目录

使用管理员身份运行 00注册ODBC_管理员权限运行.cmd,将自动注册ODBC。

1.2,ODBC数据源配置
在ODBC数据库(64位)中配置数据源(DSN)

在用户DSN或者系统DSN中,创建新数据源,使用的驱动名称为GBase ODBC DRIVER(64-bit),名称为testdb

连接属性(Connection)和环境(Environment)按实际数据库相应值的进行配置


2,QT创建项目通过ODBC连接数据库测试
打开QT Creator,新建Qt Console Application项目

名称为QtOdbcGBasedbt,目录指定在D:\WORKDIR下

使用qmake编译系统

Kit Selection使用Desktop Qt 5.12.0 MinGW 64-bit

连接数据库操作,需要在QtOdbcGBasedbt.pro配置文件中,增加一行QT =+ sql

在main.cpp中编写连接数据库的代码(使用ODBC连接),可以使用DSN的方式(使用setDatabaseName(“ODBC数据源中配置的DSN名称”)),或者使用直连(DSN-Less)方式(使用setDatabaseName(“ODBC连接字符串(一般包含DRIVER、HOST、SERV、PROT、DB和SRVR等参数)”))

示例使用的完整main.cpp内容如下:
#include <QCoreApplication>
#include <QtSql>
#include <QSqlDatabase>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");// 使用DSN方式db.setDatabaseName("testdb"); //DSN名称// 使用DSN-Less连接方式//db.setDatabaseName("DRIVER={GBase ODBC DRIVER (64-bit)};HOST=h01.gbasedbt.com;SERV=9088;PROT=onsoctcp;DLOC=zh_CN.57372;CLOC=zh_CN.57372;DB=testdb;SRVR=gbase01");db.setUserName("gbasedbt"); //用户名db.setPassword("GBase123$%"); //密码bool ok = db.open();//建立数据库连接if(!ok){qDebug()<<"Can not connect to GBase 8s Database !";return -1;}qDebug()<<"Connect to GBase 8s Database OK .";QSqlQuery query(db);query.prepare("drop table if exists tab1");bool drop = query.exec();if (!drop){qDebug()<<"drop table error !";}qDebug()<<"drop table tab1 success .";query.prepare("create table tab1 (id varchar(255), ts datetime year to second default current year to second)");bool create = query.exec();if (!create){qDebug()<<"create table tab1 error !";}qDebug()<<"create table tab1 success .";query.prepare("insert into tab1(id) values('test001')");bool insert = query.exec();if (!insert){qDebug()<<"insert table tab1 error !";}qDebug()<<"insert table tab1 success .";query.prepare("select * from tab1 where id = :id");query.bindValue(":id","test001");bool select = query.exec();if (!select){qDebug()<<"select table tab1 error !";}QSqlRecord rec = query.record();while(query.next()){rec = query.record();QString value1 = query.value(0).toString();QString value2 = query.value(1).toString();qDebug()<<"id:"<<value1<<"\t"<<"ts:"<<value2;}db.close();return ok;
}
执行debug测试,输出显示操作成功。

附件:
QtOdbcGBasedbt.zip
相关文章:
QT通过ODBC连接GBase 8s数据库(Windows)示例
示例环境: 操作系统:Windows 10 64位数据库及CSDK版本:GBase 8s V8.8_3.0.0_1 64位QT:5.12.0 64位 1,CSDK安装及ODBC配置 1.1,免安装版CSDK 下载免安装版的CSDK驱动,地址:https:…...
Java-三个算法冒泡-选择排序,二分查找
Java算法: 冒泡排序; 解析:将前后两个数对比,将大的数(或小的)调换至后面,每轮将对比过程中的最大(或最小)数,调到最后面。每轮对比数减一;初始对比数为数组…...
docker版jxTMS使用指南:使用jxTMS提供数据
本文讲解了如何jxTMS的数据访问框架,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查看:4.0版升级内容 4…...
阿里 MySQL 规范
阿里 MySQL 规范 1. 建库建表规范 【推荐】库名与应用/服务名称尽量一致。 【强制】表名不使用复数名词。 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于DO类名也是单数形式,符合表达习惯。 【推荐】表的…...
C++ Primer阅读笔记--动态内存和智能指针
目录 1--动态内存管理 2--shared_ptr类 2-1--make_shared 函数 2-2--引用计数 2-3--get 3--new和delete 4--shared_ptr和new结合使用 5--unique_ptr 6--weak_ptr 1--动态内存管理 new:在动态内存中为对象分配空间并返回一个指向该对象的指…...
git分支管理策略
git的基础操作以及常用命令在上篇博客哦~ git原理与基本使用 1.分支管理 1.主分支 在版本回退⾥,我们已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线&…...
IntelliJ IDEA maven配置,设置pom.xml的配置文件
IntelliJ IDEA项目,选择 文件 设置,弹窗 构建、执行、部署 构建工具 Maven就可以 maven配置好以后,在pom.xml的配置文件中就可以设置对应的jar包了,这样构建的时候自动需要的jar,在项目中导入即 settings.xml文件apa…...
C#__使用Thread启动线程和传输数据
class Program{static void Test(){Console.WriteLine("Start……");Thread.Sleep(2000); // 1s等于1000ms,暂停2sConsole.WriteLine("end");}static void Download(Object ob){string str ob as string; // 遍历传递过来的ob字符串Console.Wr…...
appium2.0+ 单点触控和多点触控新的解决方案
在 appium2.0 之前,在移动端设备上的触屏操作,单手指触屏和多手指触屏分别是由 TouchAction 类,Multiaction 类实现的。 在 appium2.0 之后,这 2 个方法将会被舍弃。 "[Deprecated] TouchAction action is deprecated. Ple…...
记录一次Modbus通信的置位错误
老套路,一图胜千言,框图可能有点随意,后面我会解释 先描述下背景,在Modbus线程内有一个死循环,一直在读8个线圈的状态,该线程内读到的消息会直接发送给UI线程,UI线程会解析Modbus数据帧…...
数据结构--递归与分治
汉诺塔分析: 以三层进行分析,大于三层分析情况是一样的。 #include <stdio.h>void move(int n,char x,char y,char z) {if(1 n){printf("%c---------->%c\n",x,z);}else{move(n-1,x,z,y);//将第n-1个盘子从x借助z移动到y printf(&q…...
spring cloud gateway中出现503
spring cloud gateway中出现503 当搭建网关模块的时候出现503的错误的最大的可能就是没有设置负载均衡的依赖包 原先搭建的时候采用的是下面的方式进行设置的 gateway:discovery:locator:enabled: true #可以从nacos进行服务的发现 上面的这种方式可以直接进行注册和发现&…...
战略在集体学习过程中涌现
战略学习派:战略是涌现的学习过程,中国人的话,要交学习费!【安志强趣讲269期】 趣讲大白话:出来混总要交学费 **************************** 中国人有这个意识 新进一个领域,要交学费,有学习过程…...
html动态爱心代码【四】(附源码)
目录 前言 特效 完整代码 总结 前言 情人节马上就要到了,为了帮助大家高效表白,下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐,可用于520,情人节,生日,表白等场景,可直接使用。…...
如何利用SLF4J扩展模块实现高效的日志记录
如何利用SLF4J扩展模块实现高效的日志记录 摘要:SLF4J(Simple Logging Facade for Java)是一个用于 Java 程序中记录日志的简单门面,它提供了一种统一的日志记录接口,可以方便地切换底层的日志实现。SLF4J 还…...
通用语言模型蒸馏-GLMD
文章目录 GLMD一、PPT内容论文背景P1 BackgroundP2 Approach 相关知识P3 知识蒸馏P4 语言建模词预测逻辑 方法P5 两阶段词汇预测蒸馏P6P7 词汇压缩 实验结果P8 results 二、论文泛读2.1 论文要解决什么问题?2.2 论文采用了什么方法?2.4 论文达到什么效果…...
kafka--技术文档-基本概念-《快速了解kafka》
学习一种新的消息中间键,卡夫卡!!! 官网网址 Apache Kafka 基本概念 Kafka是一种开源的分布式流处理平台,由Apache软件基金会开发,用Scala和Java编写。它是一个高吞吐量的分布式发布订阅消息系统…...
ChatGPT:ChatGPT 的发展史,ChatGPT 优缺点以及ChatGPT 在未来生活中的发展趋势和应用
目录 1.ChatGPT 是什么 2. ChatGPT 的发展史 3.ChatGPT 优缺点 4.ChatGPT 在未来生活中的发展趋势和应用 5.ChatGPT经历了几个版本 1.ChatGPT 是什么 ChatGPT 是一个在线聊天机器人,可以与使用者进行语义对话和提供帮助。它可以回答各种问题,提供建议…...
【八股】2023秋招八股复习笔记4(MySQL Redis等)
文章目录 目录1、MySQLmysql索引实现mysql索引优化mysql索引失效的情况mysql 千万数据优化mysql 事务隔离级别 & 实现原理mysql MVCC版本链(undo log)mysql数据同步机制 & 主从复制 (binlog)mysql 日志&数据恢复&…...
【Unity】 Mesh 和 Mesh.subMeshCount
原文 https://www.cnblogs.com/hwx0000/p/12733582.html 什么是subMesh Mesh里面有这么一个参数mesh.subMeshCount,所以说明了subMesh是 属于 Mesh的,subMesh是mesh的子mesh,subMesh所有的顶点数据信息都来自于对应的Mesh,subMes…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
