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

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目录
image001.png
使用管理员身份运行 00注册ODBC_管理员权限运行.cmd,将自动注册ODBC。
image003.png

1.2,ODBC数据源配置

在ODBC数据库(64位)中配置数据源(DSN)
image005.png
在用户DSN或者系统DSN中,创建新数据源,使用的驱动名称为GBase ODBC DRIVER(64-bit),名称为testdb
image007.png
连接属性(Connection)和环境(Environment)按实际数据库相应值的进行配置
image009.png
image011.png

2,QT创建项目通过ODBC连接数据库测试

打开QT Creator,新建Qt Console Application项目
image013.png
名称为QtOdbcGBasedbt,目录指定在D:\WORKDIR下
image015.png
使用qmake编译系统
image017.png
Kit Selection使用Desktop Qt 5.12.0 MinGW 64-bit
image019.png
连接数据库操作,需要在QtOdbcGBasedbt.pro配置文件中,增加一行QT =+ sql
image021.png
在main.cpp中编写连接数据库的代码(使用ODBC连接),可以使用DSN的方式(使用setDatabaseName(“ODBC数据源中配置的DSN名称”)),或者使用直连(DSN-Less)方式(使用setDatabaseName(“ODBC连接字符串(一般包含DRIVER、HOST、SERV、PROT、DB和SRVR等参数)”))
image023.png
示例使用的完整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测试,输出显示操作成功。
image025.png

附件:
QtOdbcGBasedbt.zip

http://www.lryc.cn/news/141317.html

相关文章:

  • Java-三个算法冒泡-选择排序,二分查找
  • docker版jxTMS使用指南:使用jxTMS提供数据
  • 阿里 MySQL 规范
  • C++ Primer阅读笔记--动态内存和智能指针
  • git分支管理策略
  • IntelliJ IDEA maven配置,设置pom.xml的配置文件
  • C#__使用Thread启动线程和传输数据
  • appium2.0+ 单点触控和多点触控新的解决方案
  • 记录一次Modbus通信的置位错误
  • 数据结构--递归与分治
  • spring cloud gateway中出现503
  • 战略在集体学习过程中涌现
  • html动态爱心代码【四】(附源码)
  • 如何利用SLF4J扩展模块实现高效的日志记录
  • 通用语言模型蒸馏-GLMD
  • kafka--技术文档-基本概念-《快速了解kafka》
  • ChatGPT:ChatGPT 的发展史,ChatGPT 优缺点以及ChatGPT 在未来生活中的发展趋势和应用
  • 【八股】2023秋招八股复习笔记4(MySQL Redis等)
  • 【Unity】 Mesh 和 Mesh.subMeshCount
  • Java开发中Word转PDF
  • 【前端】vscode前端插件笔记
  • windows MFC消息demo
  • 尚硅谷大数据项目《在线教育之离线数仓》笔记003
  • 银河麒麟arm版服务器安装docker
  • 三个视角解读ChatGPT在教学创新中的应用
  • PHP求职招聘系统Dreamweaver开发mysql数据库web结构php编程计算机网页
  • Mysql 基本概念
  • python开发--文件敏感信息识别
  • 【力扣】746. 使用最小花费爬楼梯 <动态规划>
  • sftp命令 添加端口(亲测)