数据库操作小记--oracle11R+DM8+Qt5.12

我电脑是Windows64+oracle11R+DM8+Qt5.12的组合,后续会部署在麒麟V4下,持续更新。

1环境安装

所有数据库默认的账户“SYSTEM”"SYS"等,密码可重置、可再输入一遍避免后续登录不上。

1.1安装oracle11R

百度网盘下载

 提取码: f7iz 

提示:本机使用,仅需下载win64_11gR2_database_1of2.zip、win64_11gR2_database_2of2.zip后合并解压成database文件夹,执行setup.exe安装即可,若服务器与客户端分离,需在客户端上下载win64_11gR2_client.zip进行解压安装。

1.2安装DM8

参考官网教程:官网说明

百度网盘下载2

 提取码: 7axh

安装DM可以勾选两个示例库,就可以直接使用该表数据,安装无key直接跳过就行。

1.3DM服务配置

补充做了个这个操作:

通过 ODBC 接数据库

2.数据准备

2.1oracle数据准备

2.2DM数据准备

2.2.1创建表空间

DM创建表空间

提示:添加表空间文件时,不是先建立xx.dbf文件,而是在选择的最后的文件夹下,在对话框中输入文件名称,确定后会自动建立该文件。

2.2.2创建用户

DM创建新用户并关联表空间

可在次步关联用户和表空间:

也可参考这边文章,但缺少了一些截图:

如何在达梦数据库DM8下创建新用户、表空间、数据库表结构

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27866305/article/details/107047773
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                       
原文链接:https://blog.csdn.net/qq_27866305/article/details/107047773

1)创建表是在模式->用户名->表右键“新建表”进行的;

2)表操作(插入、更新、选择)是在1)表下右键->生成SQL脚本进行的。

2.2.3操作错误排查

DM错误码

3.oracle转DM

因需要,将现有oracle转为DM数据,参考:

从oracle迁移到DM

4.qt使用

.pro

QT       += core gui
QT       += sql

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QtSql>
#include <QDebug>
#include <QSqlDatabase>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);


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


    QSqlQuery query;

    //清空表,初始化测试环境
    QString strsql = "delete from TEST.PERSON";
    if(query.exec(strsql)){
        qDebug()<<"Init ok";
    }


    /*insert into "TEST"."PERSON"("PERSONID", "NAME", "SEX", "EMAIL", "PHONE") VALUES('10','Lily','F','ee','123');
    insert into "TEST"."PERSON"("PERSONID", "NAME", "SEX", "EMAIL", "PHONE") VALUES('11','Sue','F','ee','123');
    insert into "TEST"."PERSON"("PERSONID", "NAME", "SEX", "EMAIL", "PHONE") VALUES('12','Jane','M','ee','123');
    SELECT * FROM "TEST"."PERSON";*/
    //1.插入数据
//    strsql = "insert into TEST.PERSON(PERSONID, NAME, SEX, EMAIL, PHONE) VALUES('13','Lily','F','ee','123');";
//    if (query.exec(strsql))
//    {
//        qDebug() << "insert ok!";
//    }
//    else
//    {
//        qDebug() << "insert fail! " << query.lastError().text();
//        getchar();
//        exit(-1);
//    }

    //2.更新数据
//    strsql = "update TEST.PERSON set NAME='Sue' where PERSONID=11;";
//    if (query.exec(strsql))
//    {
//        qDebug() << "update ok!";
//    }
//    else
//    {
//        qDebug() << "update fail! " << query.lastError().text();
//        getchar();
//        exit(-1);
//    }

    //3.删除数据
//    strsql = "delete from TEST.PERSON where PERSONID=14;";
//    if (query.exec(strsql))
//    {
//        qDebug() << "delete ok!";
//    }
//    else
//    {
//        qDebug() << "delete fail! " << query.lastError().text();
//        getchar();
//        exit(-1);
//    }

    //4.查询数据
    strsql = "select PERSONID from TEST.PERSON";
    if (query.exec(strsql))
    {
        qDebug() << "select ok!";
    }
    else
    {
        qDebug() << "select fail! " << query.lastError().text();
        getchar();
        exit(-1);
    }
    while (query.next())
    {
         qDebug() << query.value(0).toString();
    }
    query.clear();
}

MainWindow::~MainWindow()
{
    delete ui;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值