自创数据库结构方法和例程

易语言 2020-08-14 12:04:29

自创数据库结构方法和例程

本数据库采用双向操作,数据处理全部在内存处理,而文件保存要靠自己。
这样做的好处是保证了操作效率,数据实时入库
当操作量大的时候频繁保存数据会有压力。
增加方法可以切换直接操作本地文件或者内存文件。

' 数据库应该这样定义结构
' 特征码填充 4字节
' 版本号 4字节
' 密码MD5 32字节
' 当前数据段名称个数 4字节
' 数据段名称表结构如下
' 4字节 名称长度
' N字节 名称
' 4字节 指向指针
' 4字节 指针长度
' 数据段名称表 N字节
' 后面附加数据,否则,你将会坑爹。
' 每次添加、删除数据都必须更新数据段名称表结构里的信息,这样就可以了。

.子程序 创建, 逻辑型, 公开, 创建一个新的数据库,如果已经存在一个将会覆盖!
.参数 路径, 文本型, , 数据库路径
.参数 密码, 文本型, 可空, 密码可空,如果密码为空,只会进行数据压缩处理!
.局部变量 数据库结构, 字节集
.局部变量 是否成功, 逻辑型

数据库结构 = { 0, 0, 0, 0 } ' 特征码填充
数据库结构 = 数据库结构 + { 0, 0, 0, 0 } ' 版本号
' 数据库结构 = 数据库结构 + 取空白字节集 (32) ' 密码的MD5,32位
' 以上是数据库的头结构,头结构不参与压缩\解压环节
.判断开始 (是否为空 (密码))
数据库结构 = 数据库结构 + 取空白字节集 (32)
.默认
数据库结构 = 数据库结构 + 到字节集 (取数据摘要 (到字节集 (密码)))
PW = 加密数据 (到字节集 (密码), 路径, #RC4算法)
.判断结束
' 之所以采用密码md5是为了密码校验,如果错误,不给打开,防止乱码,也方便.
' 填充完密码以后,每次打开都必须有密码参与运算,否则,准备被坑吧.
' 创建以后默认操作是加载该数据库的映射
数据库结构 = 数据库结构 + { 0, 0, 0, 0 }
数据库映射 = 打开内存文件 ()
写出字节集 (数据库映射, 数据库结构)
是否成功 = 写到文件 (路径, 数据库结构)
.判断开始 (是否成功 = 真)
Error = 0
数据库路径 = 路径
返回 (真)
.默认
Error = #错误_写出数据库失败
关闭文件 (数据库映射)
数据库映射 = 0
返回 (假)
.判断结束
' 新创建的函数可以直接应用的哦亲~
' 更换新结构:
' 所有数据跟随名称走,名称结构减少指针参数,数据全部附加在名称后面。
' 遍历名称需要偏移掉位置