Windows Qt连接达梦数据库

news2024/11/23 4:09:23

下载达梦数据库

        首先可以在达梦数据库的官网下载达梦数据库:https://www.dameng.com/list_103.html 

         如果你的QT程序是64位的,那么就下载win64 的达梦数据库,相应的32位的QT程序要下载win32的达梦数据库。否则,程序在连接数据库时,会报 “驱动程序和应用程序之间的体系结构不匹配” 的错误。


 安装并初始化达梦数据库

        Windows的安装比较简单,直接用默认的配置,一直下一步就可以,直到安装完成。安装完成后初始化数据库会弹出数据库配置助手,可以选择创建数据库实例。点击开始按钮,中间的大部分步骤都可以直接下一步,使用默认配置:

        这里是设置数据库的控制文件、数据文件、日志文件的存储位置: 

        这里初始化参数中,簇和页都是设置数据缓冲区的大小,簇就是Oracle中的区,页是Oracle中的块,是最小的存储单位,也使用默认的即可:

         这里口令管理需要配置数据库的用户名和密码,如果直接下一步的话,密码口令和账号一致:

         再在下一步创建示例库时,两个示例的库可以都选择上,然后点击完成后,创建数据库完成。


达梦数据库介绍

        登录数据库,使用的用户名和口令就是刚才创建数据库实例的时候设置的用户名和口令:

        在创建 DM 数据库时,会自动创建5个表空间:SYSTEM表空间、ROLL表空间、MAIN 表空间、TEMP表空间和HMAIN表空间。

  • SYSTEM表空间:存放了有关达梦数据库的字典信息,用户不能在SYSTEM表空间创建表和索引。
  • ROLL表空间:完全由DM数据库自动维护,用户无需干预。该表空间用来存放事务运行过程中执行DML操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。
  • MAIN表空间:在初始化库的时候,就会自动创建一个大小为128M的数据文件MAIN.DBF。在创建用户时,如果没有指定默认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间。
  • TEMP表空间:完全由DM数据库自动维护。当用户的SQL语句需要磁盘空间来完成某个操作时,DM数据库会从TEMP表空间分配临时段。如创建索引、无法在内存中完成的排序操作、SQL语句中间结果集以及用户创建的临时表等都会使用到 TEMP表空间。
  • HMAIN表空间:属于HTS (HUGE TABLESPACE)表空间,完全由 DM 数据库自动维护,用户无需干涉。当用户在创建 HUGE 表时,未指定 HTS 表空间的情况下,充当默认HTS表空间。

        新建表空间,可以自己定义该表空间的文件路径、大小、是否自动扩充、缓存等。除了在这里创建,也可以使用SQL语句创建,例如:

create tablespace "TEST" datafile 'TEST.DBF' size 32 CACHE = NORMAL;

        创建用户,设置用户名和密码,以及该用户使用的表空间:

新建表,可以使用图形化界面创建,也可以使用SQL语句直接创建,可以指定创建表的表空间:

        可以直接右键查看数据,查看每张表里面的数据:


配置ODBC

        我们使用QT连接达梦数据库,是使用ODBC驱动连接的,所以需要先配置达梦数据库的ODBC驱动,先在控制面板->Windows工具中找到ODBC 数据源:

        只要达梦数据库安装成功,应该都可以在这里看到达梦数据库的ODBC驱动,剩下的就是要在用户DNS中添加达梦数据库的ODBC驱动:


使用QT连接数据库

        首先先要在pro文件中加入:

QT += sql

        连接数据库:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("localhost");
db.setPort(5236);
db.setDatabaseName("DMDATABASE");
db.setUserName("SYSDBA");
db.setPassword("SYSDBA");
if (db.open())
{
    qDebug() << "connect ok!";
}
else
{
    qDebug() << "connect fail! " << db.lastError().text();
}

        清空表,初始化测试环境:

QSqlQuery query;

QString strsql = "delete from PRODUCTION.PRODUCT_CATEGORY";
if(query.exec(strsql))
{
    qDebug() << "delete ok!";
}
else
{
    qDebug() << "delete fail! " << query.lastError().text();
}
query.clear();

        插入数据:

QSqlQuery query;

QString strsql = "insert into PRODUCTION.PRODUCT_CATEGORY(NAME) values('语文'), ('数学'), ('英语'), ('体育')";
if (query.exec(strsql))
{
    qDebug() << "insert ok!";
}
else
{
    qDebug() << "insert fail! " << query.lastError().text();
}
query.clear();

        删除数据:

QSqlQuery query;

QString strsql = "delete from PRODUCTION.PRODUCT_CATEGORY where name='数学'";
if (query.exec(strsql))
{
    qDebug() << "delete ok!";
}
else
{
    qDebug() << "delete fail! " << query.lastError().text();
}
query.clear();

        更新数据:

QSqlQuery query;

QString strsql = "update PRODUCTION.PRODUCT_CATEGORY set name = '英语—新课标' where name='英语';";
if (query.exec(strsql))
{
    qDebug() << "update ok!";
}
else
{
    qDebug() << "update fail! " << query.lastError().text();
}
query.clear();

        查询数据:

QSqlQuery query;

QString strsql = "select name from PRODUCTION.PRODUCT_CATEGORY";
if (query.exec(strsql))
{
    qDebug() << "select ok!";
}
else
{
    qDebug() << "select fail! " << query.lastError().text();
}
while (query.next())
{
    qDebug() << query.value(0).toString().toStdString().c_str();
}
query.clear();

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

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

相关文章

【图像分割】各向异性热扩散方程SAR图像分割【含Matlab源码 1879期】

⛄一、各向异性热扩散方程简介&#xff08;具体理论见参考文献&#xff09; 1 前言 图像分割是 图像解译的一个关键步骥。 图像分割属于图像解译的早期处理 &#xff0c; 目的是为更高水平的后续处理提供输人。 因此图像分割的好坏对后续 解译性能有较大的影响。 相对于光学图…

3、metasploit渗透测试初识

一、Metasploitable2靶机安装 参考(1条消息) Metasploitable-linux-2.0.0靶机下载配置教程_draper-crypto的博客-CSDN博客_metasploitable2-linux用户密码&#xff1a;msfadmin/msfadmin二、模块介绍 exploits&#xff08;渗透攻击/漏洞利用模块&#xff09;渗透攻击模块&#…

SuperMap GIS 倾斜摄影数据优化 QA

一、为什么要优化 倾斜摄影数据自身存在文件碎、体量大等特点。未经优化的倾斜摄影在目前市面上主流的三维平台上加载均会出现加载慢&#xff0c;浏览效率低等问题。特别是在浏览器端受文件请求量、网络带宽、硬件性能等方面的影响&#xff0c;倾斜摄影的显示效果往往不尽人意…

元房地产经纪人 — 科幻系列包 #2 来袭!

OUTR Studios 刚刚发布了他们最新的 The Sandbox 元宇宙科幻包&#xff0c;里面装满了很多好东西&#xff01;新内容包括两个非玩家角色 (NPC)、两套可装备的太空服和两个独特的太空无人机。这个最新版本肯定会为已有的模块化科幻构建套件增添更多乐趣。无论你们是与朋友一起建…

大屏适配的两种方案

现在做大屏的需求越来越多,大屏的适配是个头疼的事情 一、基于rem的适配方案 rem是什么? rem是指相对于根元素的字体大小的单位,在日常开发过程中我们通常把根元素(html/body)的字体设置为10px,方便于我们计算(此时子元素的1rem就相当于10px)。 适用场景 不固定宽高…

A_A05_001 aithinker_serial_tool_安信可调试助手使用

目录 一、软件获取 二、软件基本功能介绍 1、接收区 2、串口通信参数配置区 3、串口打开关闭与其他设置区域 4、手动发送区域 5、多文本发送区 6、辅助区域 三、注意事项 一、软件获取 网盘链接 直戳跳转 二、软件基本功能介绍 1、接收区 接收区就是接收外部设备给串口…

理解vue2.x版本中productionTip=false设置无效的原因

首先&#xff0c;我们看到vue官网中关于productionTip的API使用&#xff1a; 但是&#xff0c;我在本地中使用却无效&#xff0c;代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta htt…

写接口用例文档,测接口

定义数据工具 共用API文档 产品、设计、前端、后端、测试、运维、售前、售后 mock 自动生成code和data 前后端 编写接口文档 post json格式 查询需要token值 APIfox介绍 一、常用解决方案 使用 Swagger 管理 API 文档 使用 Postman 调试 API 使用 mockjs 等工具 Mock AP…

算法刷题打卡第46天:排序数组---堆排序

排序数组 难度&#xff1a;中等 给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 示例 1&#xff1a; 输入&#xff1a;nums [5,2,3,1] 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;nums [5,1,1,2,0,0] 输出&#xff1a;[0,0,1,1,2,5]堆排序…

[附源码]Python计算机毕业设计高校图书馆网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

C++初阶 模板进阶

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;介绍进阶模板的一些特性 C 模板进阶非类型模板参数注意点模板的特化概念函数模板特化类模板的特化全特化偏特化模板的编译分离什么是编…

再见print !这个牛逼的库竟然这么强!

PySnooper 是一个非常方便的调试器。如果您正在试图弄清楚为什么您的Python代码没有按照您的预期去做&#xff0c;您会希望使用具有断点和监视功能的成熟Debug工具&#xff0c;但是许多Debug工具配置起来非常麻烦。 现在&#xff0c;有了PySnooper&#xff0c;您并不需要配置那…

最长回文子串问题(Manacher算法)

文章目录题目1&#xff09;例子演示2&#xff09;思路分析3&#xff09;Manacher 算法4&#xff09;代码展示题目 如何求得某字符串 str 的最长回文子串的长度&#xff1f; 要求时间复杂度 O(N) 1&#xff09;例子演示 什么是回文子串&#xff1f; 回文串即该字符串从前往…

Stable Diffusion 迁移和部署

文章目录1. 模型概述2. 模型架构3. 模型迁移流程3.1 前置准备3.2 CLIP text encoder3.3 VQ-VAE (fp16)3.4 Text conditioned unet3.5 创建pipeline3.6 web demo部署4. 效果展示5. 相关链接此实验需要最新的sdk实现模型的迁移&#xff0c;最终在1684X上进行推理。代码地址为&…

mysqldumpslow和mysqldumpslow

mysqldumpslow 这是一款mysql自带的慢查询工具&#xff0c;个人使用下来发现&#xff0c;可以满足在很多慢日志中找到有问题的慢的sql&#xff0c;并且可以进行sql排序。属于一种短小精干的工具。 命令大概形式&#xff1a; slowlog是需要分析的日志 mysqldumpslow -s c -t 1…

rocketmq源码-consumer启动

前言 这篇笔记记录consumer启动的逻辑 consumer主要是负责去broker中拉取消息&#xff0c;然后将拉取到的消息&#xff0c;交给消费者去处理 consumer本质上也是一个netty客户端&#xff0c;所以&#xff0c;在启动的时候&#xff0c;和producer有很多相似的点&#xff0c;但是…

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-052(CVE-2017-9805)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

[附源码]Node.js计算机毕业设计高校国防教育管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

基于java+springboot+mybatis+vue+mysql的结合疫情情况的婚恋系统

项目介绍 现实生活中&#xff0c;很多年轻人的社交圈实际上很狭窄&#xff0c;一方面&#xff0c;多元化的社交方式太少了&#xff0c;另一方面&#xff0c;都市人繁忙的生活又让他们很少有空闲去体验传统交友方式&#xff0c;而网络的快捷和多元化恰恰提供了一个好的交友起点…

Blazor组件自做十三: VideoPlayer 视频播放器

Video.js 是一个具有大量功能的流行的视频和音频 JavaScript 库,今天我们试试集成到 Blazor . Blazor VideoPlayer 视频播放器 组件 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VwxxYiKn-1671068849666)(null)] 示例 https://blazor.app1.es/v…