一个基于共享内存的内存数据库:4 编程参考

news2024/9/29 11:31:44

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        本专题:基于共享内存的内存数据库_初级代码游戏的博客-CSDN博客 

        从这里开始顺序阅读:一个基于共享内存的内存数据库:1 介绍-CSDN博客 

 

目录

 一、源码指引

二、配置环境变量和INI文件

三、程序信息(日志)

 四、异常

五、函数参考


 一、源码指引

        本源码位于ctfc项目(见我的github)的shmdb目录:

        shmfc目录是依赖的共享内存基础功能, VirtualDB是用到的几个接口的定义。

        包含共享内存数据库功能只需要引入shm_DB.h,使用内置的管理功能则引入shm_DBMgr.h。

        此目录编译运行即为管理程序,里面包含一些内置测试功能。

二、配置环境变量和INI文件

        配置环境变量“MY_STD_ENV”指向INI文件。
        INI文件为文本文件,基本格式为:
 

//注释
[节]
变量=值

        使用共享内存数据库所需的配置为:

[SHM_CONFIG]
default.SHM_DB_COLUMN_DEF=100
default.SHM_DB_INDEX_DEF=100
default.SHM_DB_STRING_POOL=1000000
default.SHM_DB_STRING_POOL#=1000000
default.SHM_DB_DATA=1000000
default.SHM_DB_INDEX=1000000


        其中值可根据需要修改,仅用做初次创建时的共享内存大小,随着数据量增加会自动扩展。自动扩展会降低性能,因此最好设置较大的初始大小。

三、程序信息(日志)

        本系统采用了可缓存的日志系统来记录日志信息,可以关闭日志输出而仅缓存日志,然后在必要时可以查看缓存的日志。

  • 关闭日志输出“theLog.setOutput(false);”
  • 设置缓存字节大小“theLog.setCache(10240);”
  • 获得缓存的日志(同时会清除缓存)“theLog.GetCachedLog(str)”

 四、异常

        本系统可能抛出异常,异常类型为“int”、“char const *”、“string”、“exception”或“exception_my”。

五、函数参考

bool LoadTable(char const * tablename,char const * PK)从数据库加载表,同时创建PK,PK的多个列用逗号分隔
bool CreateIndex(char const * tablename,char const * indexname,char const * _key_cols)创建索引
bool DropIndex(char const * tablename,char const * indexname)删除索引,不能删除PK
bool DropTable(char const * tablename)删除表,包括所有索引
CRecordSet的功能:
bool Open(bool CanUpdate, char const * table,char const * index,CColumnDataS const * values=NULL,char const * type="=")打开记录集,values提供查询参数,参数必须符合索引顺序,可以是部分索引,type可以是=、>、<、>=、<=,不提供参数返回全索引
bool Requery()用相同的参数重新查询
bool MoveNext()移动到下一条记录
			//edit/addnew -> SetFieldValue ->update
			//增加不导致当前位置的变化,编辑完毕将导致当前记录指向下一个,如果编辑的是第一个,则开始位置也指向下一个(因为编辑过后可能不再处于索引中)
			//即编辑过程可以不断地edit而不需要movenext,但是除非requery否则不能再回到编辑过的记录,编辑会同步更新所有索引
			bool Edit()开始编辑当前记录
			bool AddNew()开始增加新记录
			bool SetFieldValue(char const * column,CColumnData const & value)设置字段的值
			bool Update()完成编辑或增加
void Delete()删除当前记录,并移动到下一条,同步删除所有索引
bool isEOF()是否记录集结束
long GetColumnCount()获得列的个数
CColumnData GetColumnData (int i)获得列数据
string GetColumnName(int i)获得列的名字
COLUMN_TYPE GetColumnType(int i)获得列的类型
bool Close()关闭记录集

(未完待续)

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

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

相关文章

Jenkins配置Git和Maven

1、Git设置 1、上传文件 将git压缩包上传到服务器上 2、解压压缩包 tar -zxvf git-2.33.0.tar.gz 3、安装所需依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 【输入 y 】 【报错】 执行“安装所需依赖”的命…

Spring Cloud 工程搭建服务注册_服务发现

文章目录 Spring Cloud 工程搭建服务拆分示例数据库工程搭建构建父子工程创建父工程创建子项目完成两个接口 远程调用实现添加ProductInfo字段定义RestTemplate修改OrderService 服务注册/服务发现 - Eureka注册中心CAP理论常见的注册中心ZookeeperEurekaNacos Eureka 介绍搭建…

双十一好物清单分享?五款超值的数码好物分享!

双十一马上就来啦&#xff0c;大家是不是都等着在这个时候买点好东西呀&#xff1f;数码产品可是咱们生活里少不了的&#xff0c;能让咱们的生活更方便、更有意思。我这儿给大家挑了五款特别值的数码好东西&#xff0c;准备来跟大家分享分享&#xff01;快来看看有没有你中意的…

构建Spring Boot在线购物商城

第1章 绪论 1.1 课题背景 当今社会是一个互联网的社会,随着互联网的发展,信息数字化时代已经来临。互联网已经成为了新的风口&#xff0c;百度、阿里巴巴、腾讯则是中国互联网公司中的领头羊&#xff0c;互联网拉近了人与人之间的距离&#xff0c;同时也让我们的生活变得更加便…

sheng的学习笔记-AI-时序差分学习

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 强化学习&#xff1a;sheng的学习笔记-AI-强化学习&#xff08;Reinforcement Learning, RL&#xff09;-CSDN博客 蒙特卡罗强化学习&#xff1a; sheng的学习笔记-AI-蒙特卡罗强化学习-CSDN博客 什么是时序差分学习 时序…

夹耳式耳机值得购买吗?5个专业总结夹耳式耳机坑点!

夹耳式耳机近年来备受消费者喜爱&#xff0c;尤其是在追求健康生活方式的大背景下&#xff0c;这种类型的耳机因其开放式的聆听体验而受到青睐。然而&#xff0c;伴随着市场的火爆&#xff0c;关于夹耳式耳机是否真的如厂商所宣称的那样出色&#xff0c;也引发了不少讨论。尽管…

[遇到问题] Word中插入公式横线“-”变成了长连字符

1 一招解决Word里公式减号/短横线&#xff0c;在关闭word后变成连字符_word中公式短横线变成了减号-CSDN博客 2 选中横向-公式-文本&#xff08;公式文本化即可&#xff09;

Leetcode 706. 设计哈希映射

1.题目基本信息 1.1.题目描述 不使用任何内建的哈希表库设计一个哈希映射&#xff08;HashMap&#xff09;。 实现 MyHashMap 类&#xff1a; MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映…

2024年9月下旬AITOP100平台活动专区更新了7场AI大赛活动,奖金池59.4万元

亲爱的创新者们&#xff0c;AITOP100平台的活动专区在9月下旬已更新7场AI大赛活动。 本期为您精选了7场综合性的AI大赛&#xff0c;涵盖了AI绘画、AI视频、AI音乐和应用类领域&#xff0c;其中6场大赛均设有丰厚的现金奖励。这些赛事均由知名大平台或政府单位主办&#xff0c;…

Java: String类

一 String类 在 Java SE 中&#xff0c;String 类是用于处理字符串的一个非常重要的类。字符串在 Java 中是不可变的&#xff08;immutable&#xff09;&#xff0c;意味着一旦创建&#xff0c;字符串的内容就不能被修改。所有对字符串的操作实际上都是创建了一个新的字符串对…

提升效率,C4D云渲染教程来了

因为C4D主要搭配的渲染器OCtane和Redshift都是GPU渲染器&#xff0c;阿诺德渲染器也可能直接用GPU渲染&#xff0c;所以大部分C4D渲染农场都支持用RTX2080、3090、4090系列显卡云渲染&#xff0c;云渲染追求速度&#xff0c;分机渲染任务&#xff0c;比如分100台机器渲染一个相…

【算法】二叉树中的 DFS

【ps】本篇有 6 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;计算布尔二叉树的值 .1- 题目解析 .2- 代码编写 2&#xff09;求根节点到叶节点数字之和 .1- 题目解析 .2- 代码编写 3&#xff09;二叉树剪枝 .1- 题目解析 .2- 代码编写 4&#x…

手机浏览器如何切换IP‌?多种方法任你选

在数字化时代&#xff0c;手机已成为我们日常生活中不可或缺的一部分&#xff0c;而手机浏览器则是我们访问互联网的重要工具。然而&#xff0c;有时出于隐私保护、访问限制规避或其他需求&#xff0c;我们可能需要切换手机浏览器的IP地址。本文将详细介绍多种在手机上切换浏览…

主流数据库与最佳备份工具选择

文章目录 前言选择备份工具的考虑因素1、数据库兼容性&#xff1a;2、备份性能&#xff1a;3、恢复能力&#xff1a;4、备份策略与灵活性&#xff1a;5、数据安全性&#xff1a; 主流数据库概述1、Oracle2、PostgreSQL3、Microsoft SQL Server4、MongoDB 备份工具推荐1、Oracle…

C++手动实现栈、和队列

栈的实现 头文件 #ifndef MY_STACK_H #define MY_STACK_H #include <iostream>using namespace std;class my_stack { private:int *base;//动态栈指针int top;//栈顶元素int size;//栈大小 public:my_stack();//无参构造my_stack(int size):top(-1),size(size){base …

机器学习——Bagging

Bagging&#xff1a; 方法&#xff1a;集成n个base learner模型&#xff0c;每个模型都对原始数据集进行有放回的随机采样获得随机数据集&#xff0c;然后并行训练。 回归问题&#xff1a;n个base模型进行预测&#xff0c;将得到的预测值取平均得到最终结果。 分类问题&#xf…

每日 GitHub 探索|构建强大 LLM 管道和优化 AI 聊天框架

探索 DSPy&#xff0c;一款用于优化 LLM 提示和权重的框架。了解 Anthropic Cookbook&#xff0c;该代码库提供使用 Anthropic 强大 AI 模型的可复制代码片段。此外&#xff0c;还有 LobeChat&#xff0c;一个开源、现代设计的 AI 聊天框架&#xff0c;支持多种 AI 供应商和功能…

AI大模型全套学习资料

前言 如果您也对AI大模型感兴趣想学习却苦于没有方向&#x1f440; 小编给自己收藏整理好的学习资料分享出来给大家&#x1f496; &#x1f449;获取方式&#xff1a; &#x1f61d;有需要的小伙伴&#xff0c;可以保存图片到wx扫描二v码关注免费领取【保证100%免费】&#x1…

C盘太满了 用这五个步骤彻底的清理C盘垃圾 真干净!

C盘太满了 用这五个步骤彻底的清理C盘垃圾 真干净&#xff01;C盘忽然满了&#xff0c;这个问题长期困扰着大家&#xff0c;因为太多的人不知道怎么去清理C盘了&#xff0c;毕竟C盘的结构确实是太复杂了&#xff0c;也不是一般人能够充分了解的&#xff0c;所以就间接的导致了大…

代码随想录算法训练营第55天 | 寻找存在的路径

寻找存在的路径 题目描述 给定一个包含 n 个节点的无向图中&#xff0c;节点编号从 1 到 n &#xff08;含 1 和 n &#xff09;。 你的任务是判断是否有一条从节点 source 出发到节点 destination 的路径存在。 输入描述 第一行包含两个正整数 N 和 M&#xff0c;N 代表节点…