精易论坛

标题: EDB结构的研究,以及火山,C++等其他语言如何调用和现代化 [打印本页]

作者: 阿龙    时间: 2022-9-11 03:22
标题: EDB结构的研究,以及火山,C++等其他语言如何调用和现代化
本帖最后由 alongyiyuan 于 2022-9-11 03:45 编辑

目前火山或其他语言是无法用EDB的,当然也没有用EDB的必要,小型数据库ADO,远程服务mysql。但是很多水友是  从易语言到火山的,对于EDB很熟悉,对sql语句根本不会,正好疫情时无聊,复习了下编译原理,用易写词法分析器,到做e2cpp玩,再加上精易的支持库改造计划,反正做都做了就稍微完善了下核心库,本来也想做个支持库的,奈何VC6对我来说就是地狱级折磨,就想着没事的时候封封库,以后想完善e2cpp也方便。

其中EDB是闭源不好复现,之前写过动态调用易语言支持库实现其他语言调用EDB,但是支持库只有32位。所以稍微研究了下结构,从逆向代码看,EDB应该不是B+树结构,所以不是特别快也能理解,既然做了就想着在向下兼容的前提下再优化一下edb,吴总使用的古代API和调用MFC都是浪费性能并且导致移植x64困难,像openfile、COleDateTime::GetTickCount(),这些就给换了,因为代码是从C++翻译的,有些结构体和指针的处理累的脑袋疼,直接扣汇编代码可能会很方便,速度可能会更快,但是水友可能就有点看不懂了,优化完以后可以大于两G。读写也改为内存文件映射+临界区。速度快很多,大文件处理也简单,也不占内存,多线程操作也不蹦。本来是想让EDB现代话一点,可以通过sql语句操作,可以设置编码,实现起来比较简单,固定储存长度unicode可访问的长度是ansi的两倍,换gbk啥的就只能访问一半,或者直接添加宽字符类型。可是这样核心库的edb就打不开优化后的了,所以先没做调整,保证兼容,换cpp的话有重载和模板,通用型和可变参比较好实现,易的话只能是支持库,没指针,结构体也难用,所以搞起来很麻烦,因为太累就没有往后封装,精易里我记得有分享的字节集操作EDB的,有兴趣自己搜一艘,论坛也有内存映射文件模块。吴总自己都不搞,我搞起来也没有动力,大家有兴趣的自己继续封装吧,封装完黑月也可也用







速度测试了一下,比核心库快25%。带字节集型的差距会更大,在40%左右,C++没有想象中差距那么大,可能是我写库的时候又在外面嵌套了一层中文再call过去的原因,但也是维度碾压。

结构就是这么个结构,加空记录就是记录数位置+1记录数,再在文件后面+所有字段需求数据长度的长度。
写就是在指定记录偏移的指定字段偏移位置写数据类型长度的数据。注释还是比较全的,有兴趣水友自己封装吧









补充内容 (2022-9-14 09:45):
OPEN_ALWAYS换CREATE_ALWAYS吧,不然后面”清空”命令会有bug,这两天才发现的。
作者: TLDream    时间: 2022-9-11 08:19
谢谢分享。。。。
作者: jysoft2022    时间: 2022-9-11 08:21
谢谢分享
作者: 本森Bin    时间: 2022-9-11 08:54
谢谢分享
作者: zjfjm    时间: 2022-9-11 09:00
谢谢分享
作者: 执骨哟    时间: 2022-9-11 09:42
大佬造轮子了,拜谢
作者: 揰掵佲    时间: 2022-9-11 09:59
本帖最后由 揰掵佲 于 2022-9-11 10:02 编辑

感谢分享
作者: JYYeah    时间: 2022-9-11 10:22
开源精神必须支持~
作者: 王不大咧咧    时间: 2022-9-11 10:23
感谢分享
作者: fjgh    时间: 2022-9-11 10:30

作者: 追忆帝    时间: 2022-9-11 10:40
感谢大佬分享,虽然看不懂还是支持一下
作者: cwgwww    时间: 2022-9-11 10:45
感谢大佬分享!
作者: zjmowu    时间: 2022-9-11 11:56
感谢大佬分享,虽然看不懂还是支持一下
作者: ノ朽默℡    时间: 2022-9-11 12:01
楼主辛苦了,谢谢楼主发的好帖子~
作者: 梦想ol    时间: 2022-9-11 12:37
支持开源~!感谢分享
作者: asfor78    时间: 2022-9-11 14:32
支持开源~!感谢分享
作者: 285275928    时间: 2022-9-11 14:55
支持开源~!感谢分享
作者: snufgpl    时间: 2022-9-11 15:45
支持开源~!感谢分享
作者: wyr    时间: 2022-9-11 16:05
支持开源~!感谢分享
作者: urenai    时间: 2022-9-11 16:18
学习....           
作者: 1347379245    时间: 2022-9-11 16:35
感谢分享
作者: 深圳梦    时间: 2022-9-11 17:59
支持开源~!感谢分享
作者: 鱼雨遇玉羽    时间: 2022-9-11 21:38
牛的{:3_41:}{:3_41:}{:3_41:}
作者: jing2020yi    时间: 2022-9-11 23:03
谢谢分享!~
作者: 胖虎O    时间: 2022-9-11 23:48
牛,看一下
作者: jiang910615    时间: 2022-9-12 08:34
学习学习
作者: sinewtec    时间: 2022-9-12 09:40
        支持开源~!感谢分享
作者: LLZWWY    时间: 2022-9-12 12:29
感谢大佬无私分享
作者: 794229345    时间: 2022-9-12 21:01
楼主辛苦了,谢谢楼主,感谢楼主分享,楼主好人一生平安!!!
作者: 凉城o    时间: 2022-9-13 11:07
感谢分享,很给力!~
作者: 杰西卡技术传媒    时间: 2022-9-13 12:09
支持开源~!感谢分享
作者: 只听你德歌    时间: 2022-9-13 17:12
        支持开源~!感谢分享
作者: chenyucheng    时间: 2022-9-13 19:50
我不懂,但我大受震撼!
作者: 精易⌒小杜    时间: 2022-9-13 20:20
什么专业  这才是。不过我只能好好学习你的脚步
作者: zhtcCC    时间: 2022-9-13 20:55
回复看看是个啥
作者: 轻风影    时间: 2022-9-13 22:41
看起来好复杂
作者: zidoo    时间: 2022-9-14 09:53
要是edb 能支持多表就完美了,哪怕是3表5表的,对小程序也够了
作者: 西瓜大大    时间: 2022-9-14 10:11
抓紧学学sql吧
作者: 阿龙    时间: 2022-9-14 10:18
zidoo 发表于 2022-9-14 09:53
要是edb 能支持多表就完美了,哪怕是3表5表的,对小程序也够了

想兼容原版几乎不可能,他打开的就是单表,不是库。
作者: xiaoniu1230    时间: 2022-9-14 13:11
感谢分享 支持开源 !
作者: 零度先生    时间: 2022-9-14 15:44
你为什么不研发一款类似EDB数据库软件?叫做SEDB呢?
作者: t59651090t    时间: 2022-9-14 17:59
支持开源~!感谢分享
作者: 阿龙    时间: 2022-9-14 18:23
零度先生 发表于 2022-9-14 15:44
你为什么不研发一款类似EDB数据库软件?叫做SEDB呢?

这么多好用的库还不够用的吗?阿里MySQL新用户最便宜的一款只要16元一年。
作者: 蓝轩而已    时间: 2022-9-14 21:40
感谢楼主分享,希望作品越来越强
作者: hellowe    时间: 2022-9-14 22:42
EDB结构的研究,以及火山,C++
作者: 易薄云天    时间: 2022-9-14 22:57
下一步就是易语言了,让你们整成开源的。
作者: sky667    时间: 2022-9-15 12:06
支持支持
作者: hrb011011    时间: 2022-9-15 14:46
666,支持!!
作者: dangerace    时间: 2022-9-15 22:34
牛逼plus,感谢楼主分享
作者: teachuser    时间: 2022-9-16 06:52
支持开源~!感谢分享
作者: 784570816    时间: 2022-9-16 08:59
牛逼plus,感谢楼主分享
作者: 土豆要不    时间: 2022-9-16 10:00
标题: ++
6666666666666666666
作者: JerryYan    时间: 2022-9-16 13:42
开源精神必须支持~
作者: 梦鹅    时间: 2022-9-16 15:37
666666666666666666
作者: 极地萤火    时间: 2022-9-16 23:23
感谢分享
作者: 网络注册网员    时间: 2022-9-17 07:58
支持开源
作者: 呵呵呵666    时间: 2022-9-17 11:58
下载看看edb格式

作者: 酷易自绘    时间: 2022-9-17 12:22
高大尚啊,表示看不懂
作者: cfvgbhnj    时间: 2022-9-17 17:08
我不懂,但我大受震撼!
作者: 283688410    时间: 2022-9-17 22:54
谢谢楼主分享
作者: nihao3312    时间: 2022-9-18 19:12
6666666666666支持
作者: LiYJ    时间: 2022-9-18 23:29
支持支持支持支持支持支持
作者: zgdtianya    时间: 2022-9-19 09:01

作者: 土豆要不    时间: 2022-9-19 10:00
标题: ++
6666666666666666666
作者: lzgking    时间: 2022-9-20 11:35
支持开源~ 感谢分享
作者: 枯藤老树昏鸦    时间: 2022-9-20 12:46

作者: 枯藤老树昏鸦    时间: 2022-9-20 12:46

作者: 枯藤老树昏鸦    时间: 2022-9-20 12:47

作者: wshhyb    时间: 2022-9-21 08:20
太厉害了,支持
作者: 379722832    时间: 2022-9-21 10:41

作者: 零度先生    时间: 2022-9-21 17:21
alongyiyuan 发表于 2022-9-14 18:23
这么多好用的库还不够用的吗?阿里MySQL新用户最便宜的一款只要16元一年。 ...

我就喜欢EDB,除了速度慢,就是感觉好用!
希望有大神能把MySQL做成EDB一样的界面,用中文写代码。
作者: sdif000    时间: 2022-9-21 20:07

作者: 列明    时间: 2022-9-22 10:28
这也啃得动,厉害厉害,致敬!
作者: LiYJ    时间: 2022-9-22 15:22
学习学习6666666
作者: 欸嘿    时间: 2022-9-22 21:23
  支持开源~!感谢分享
作者: 王小鑫xxx    时间: 2022-9-23 07:31
这个帅小火真是天才啊!
作者: 飞灵    时间: 2022-9-23 20:47
膜拜大佬
作者: lexuan    时间: 2022-9-25 12:12
666666666666666666666666666666666666
作者: au006    时间: 2022-9-25 15:48
双击666 拿走了
作者: 钱多多28    时间: 2022-9-26 13:58
感觉EDB其实就是sqlite改出来的...
作者: dljy    时间: 2022-9-27 14:56
        支持开源~!感谢分享
作者: 土豆要不    时间: 2022-9-28 10:00
标题: ++
6666666666666666666
作者: uyhj    时间: 2022-9-30 22:21
支持开源~!感谢分享
作者: 124782692    时间: 2022-10-4 03:00
精易模块V10.4.0 发布【2022.10.01】
作者: tmdgdx    时间: 2022-10-5 14:08
nb,感谢分享
作者: lytsz    时间: 2022-10-7 01:23
666666666666666666666666666666666666666
作者: zk474l    时间: 2022-10-7 20:15
6666666666666666666666
作者: happyzyh    时间: 2022-10-9 11:58
这个必须要支持一下
作者: 308245557    时间: 2022-10-10 14:21
支持一下,666666666
作者: 土豆要不    时间: 2022-10-11 10:00
标题: ++
6666666666666666666
作者: k047k    时间: 2022-10-13 12:45
喜欢的话请点个赞
作者: liaoxiaohu    时间: 2022-10-13 15:03
6666666666666666666
作者: 土豆要不    时间: 2022-10-21 10:00
标题: ++
6666666666666666666
作者: xmz_2005    时间: 2022-10-26 09:41
谢谢分享
作者: 土豆要不    时间: 2022-10-27 10:00
标题: ++
6666666666666666666
作者: 阿Q3    时间: 2022-10-27 19:05
支持开源 谢谢分享
作者: 阿Q3    时间: 2022-10-27 19:06
支持开源 谢谢分享
作者: tmdgdx    时间: 2022-10-28 08:03
感谢分享
作者: caizaowu    时间: 2022-11-3 15:31
dddddddddddddddd
作者: jable    时间: 2022-11-3 20:25
进来看看。。 。




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4