虚谷数据库

简介

 虚谷数据库管理系统是一款大型、高性能、高安全、高可靠和完全自主知识产权的系统软件,
 是位于用户与操作系统之间的一层数据系统管理软件,
 是三大系统软件:操作系统、中间件和数据库之一,
 为应用软件的运行提供数据存储和管理功能,
 主解决信息数据的高效存贮、安全管理与快速检索等问题,
 主要功能包括数据字典、内存管理、事务管理、语法分析器、集成管理工具集等,
 提供数据定义、数据操作功能、数据库的运行管理、数据库的建立和维护功能

详细说明建议阅读: 国产数据库虚谷数据库管理系统(虚谷DBMS)介绍

测试虚谷数据库

到这篇随笔记录为止,使用的虚谷数据库是11.0版本的,通过虚谷数据交流群中下载文件如下图示:
在这里插入图片描述
测试时双击 startup.bat 开启服务器,最开始我还以为直接执行exe,点了半天没反应,还是在群里咨询了一下才发现;
在这里插入图片描述
虚谷数据的使用文档也比较完善,需要的内容说明基本都有,包括常见的数据库的创建,表,浮标这些
在这里插入图片描述
文件中自带客户端程序可以查看当前服务器中的数据库
在这里插入图片描述
在这里插入图片描述
除了不能缩放窗体这点,使用起来还是挺方便的。

虚谷数据库中系统表

在测试数据库的时候,为了获取当前数据库的表列表,就找到几个相关表,

//select * from sys_tables; //只在SYSTEM数据库中有效,其他数据库中无权限
//select * from sys_databases;//只在SYSTEM数据库中有效,其他数据库中无权限
//select * from all_tables; //当前数据库所有表
//SELECT * from user_tables; //当前数据库有权限的表
//select * from dba_tables;//当前数据库所有表

win7搭建OBDC数据源

打开控制面板->管理工具->数据源ODBC
在这里插入图片描述
安装虚谷数据库的ODBC源需要在虚谷数据库客户端工具中找到xuguodbc_install.exe进行安装
在这里插入图片描述
然后在系统DSN里面添加XuguSQL 7.01
在这里插入图片描述
安照指定格式填写内容,并测试连接成功!
在这里插入图片描述

Qt连接数据库

通过QSqlDatabase的QODBC连接虚谷数据库

qt通过QSqlDatabase的QODBC连接虚谷数据库时,对数据的连接方式主要还是需要注意DSN的内容,其他的操作基本和操作其他数据库类似,部分示例:

   void Init(ConnetS cont,QString connention="QSQLITE_CINNENTION_DataSQl")
    {
        QSqlDatabase soft_DataBase=QSqlDatabase::database(connention);
        soft_DataBase = QSqlDatabase::addDatabase("QODBC",connention);
        soft_DataBase.setHostName(cont.Host);//地址
        soft_DataBase.setPort(cont.Port);//端口
        soft_DataBase.setDatabaseName(QString("DSN=%1;DRIVER=%2; DATABASE=%3;UID=%4;PWD=%5;")
                                      .arg(cont.DSN) //之前设置的OBDC数据源的名称
                                      .arg(cont.DRIVER) //默认值
                                      .arg(cont.DATABASE) //数据库名称
                                      .arg(cont.UID) //用户名
                                      .arg(cont.PWD) //用户密码
                                      );
        if (!soft_DataBase.open()) {
            emit Send_messages("连接失败:---不能打开软件数据库连接; " + soft_DataBase.lastError().driverText(),100000);
        }
    }

查询修改虚谷数据库中数据

对数据的增删改查基本与操作其他的数据库方式内饰,相当于只要设置好了ODBC,修改连接语句后,对数据的修改大同小异,部分示例:

//通过sql 语句查询数据
QSqlQuery DataSQl::SelectOrUpdateBy(QString sql)
{
    QSqlQuery query(soft_DataBase);
    if(soft_DataBase.open())
    {
        if(query.exec(sql))
        {
            return query;
        }
        else
            emit Send_messages("query.lastError: "+query.lastError().text(),100000);
        soft_DataBase.close();
    }
    return query;
}

/// 修改数据
/// \brief DataSQl::updateTable
/// \param 表名
/// \param 修改字段名称
/// \param 修改字段值
/// \param id 唯一标示
/// \param id值
/// \return 
///
int DataSQl::updateTable(QString Table,QString fieid,QString value,QString id,QString idvalue)
{
    if (!soft_DataBase.open()) {
        emit Send_messages("---不能打开项目数据库连接: " + soft_DataBase.lastError().driverText(),5000);
        return  -1;
    }
    QSqlQuery query(soft_DataBase);
    QString sql=QString("Update %1 set %2=:fieid where %3=:ids").arg(Table).arg(fieid).arg(id);
    query.prepare(sql);
    query.bindValue(":fieid",value);
    query.bindValue(":ids",idvalue);
    bool bol=query.exec();
    if(!bol)
    {
        emit Send_messages("---修改失败: " + query.lastError().driverText(),5000);
        return -1;
    }
    else
        return  1;
}

测试案例

这是在windows系统下的使用qt开发调用的测试案例,下载链接已下线,尼玛,其他系统环境的安装使用虚谷数据库去看官网!!!举报尼玛,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
案例中包括直接sql查询,修改等,以及对当前登录账户的权限表数据进行修改,切换插入数据,右键删除数据等功能,

案例exe执行程序可直接运行,下载路径:链接: xugushujuku20210516.rar
在这里插入图片描述
在这里插入图片描述

如果需要源码请直接下载:链接: xugushujuku.rar
在这里插入图片描述
在这里插入图片描述

补充-使用sqlDriverConnect 直接连接虚古数据库

QSqlDatabase* db =new QSqlDatabase(QSqlDatabase::addDatabase("QODBC","QODBC_TEXTMODEL"));
QString _Connect=QString("DRIVER={XuguSQL 7.01}; DB=TEXTDB;UID=USR_BEJN_TEXT;PWD=123456!;server=127.1.1.1; PORT=5138;charset=GBK;timezone=GMT+08:00;");
qDebug()<<_Connect;
db->setDatabaseName(_Connect);
bool ok = db->open();
    if (ok){
        if(ismess)
            QMessageBox::information(this, "提示", "成功连接!");
        db->close();
    }
    else {
        qDebug()<<""<<db->lastError().text();
        QMessageBox::warning(this, "提示", "连接失败!"+db->lastError().text());
    }
    db->close();
    delete db;
    db = NULL;
    QSqlDatabase::removeDatabase("QODBC_TEXTMODEL");

可直接修改参数连接虚古数据,无需配置ODBC,其中XuguSQL 7.01为驱动版本;
在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐