精易论坛

标题: sqlite3.30.1 数据库模块+支持库(彻底解决多线程死锁问题) [打印本页]

作者: 酷宝贝    时间: 2019-12-3 14:30
标题: sqlite3.30.1 数据库模块+支持库(彻底解决多线程死锁问题)
本次更新对于支持库来说,接口改动不大,模块版的话是尽量和支持库接口保持一致,所以对于以前的模块接口可能改动就大了。
要解决多线程问题,主要是对sqlite3的锁机制进行了解,和事务有密切的关系。本次更新的版本在开始事务时,增加了一个 事务锁状态 的参数。
拿简单的话来描述就是 开始事务 时如果
设置了 事务锁状态_ 立即 参数,那么这个时候其他线程的连接就不能写操作了,但是可以读操作,但是在提交事务时也要等待所有读操作完成了才能提交。
设置了 事务锁状态_ 独占 参数,那么这个时候其他线程的连接读写都不可以了。
在等待的时候就处于繁忙状态,我们可以设置 数据库.繁忙超时()来设置等待时间。

还有种情况还是会死锁,就是记录集没有关闭,而且这次更新的支持库和模块都是必须手动关闭记录集的,所以一定注意。

当然多进程和多线程是一个道理,具体操作看例子。

esqlite3 V1.1 相对于1.0的更新

1、增加了全局命令:
S3互斥体进入
S3互斥体退出
S3聚合上下文
S3取数据库自上下文

2、增加了zySqlite数据库 命令
繁忙超时
繁忙处理
取文件名
是否只读
取互斥体
是否自动提交
进度处理
取下一记录集
取总影响行

3、增加了 zySqlite记录集 命令
是否繁忙
是否只读
取数据库句柄
取行数

4、数据库.开始事务() 增加了 事务锁状态 参数,此参数在多线程中非常重要。

5、记录集必须手动关闭,任何内部方法都不再自动关闭。


sqlite3.30.1.rar (1.7 MB, 下载次数: 6888)




补充内容 (2019-12-27 00:33):
码云: https://gitee.com/kyozy/esqlite31
作者: 万里晴空    时间: 2019-12-3 14:35
沙发支持
作者: 阿蒙    时间: 2019-12-3 14:36
支持一下
作者: applepear    时间: 2019-12-3 14:40
谢谢 ~~~~~~~~~
作者: mood100    时间: 2019-12-3 14:48
收藏了,感谢分享
作者: 舞影无踪    时间: 2019-12-3 14:57
先点收藏后研究
作者: 疯狂的猿猴    时间: 2019-12-3 15:11
这个必须收藏
作者: wjswzj0    时间: 2019-12-3 15:39
感谢分享,很给力!~
作者: 情雅    时间: 2019-12-3 16:49
感谢分享,很给力!~
作者: leiwawa001    时间: 2019-12-3 17:05
谢谢分享。,
作者: 不苦小和尚    时间: 2019-12-3 17:34
现在中间件也挺好用的
作者: wjc826194    时间: 2019-12-3 18:48
如果开始事务后 程序挂了  会不会直接锁死数据库?
作者: bbs592    时间: 2019-12-3 20:33
哎呀,可惜不是mysql的,路过支持一下

作者: Aurora    时间: 2019-12-4 06:13
这个版本VS2010可以静态编译了,多谢分享666666
作者: qgchqgch89    时间: 2019-12-4 07:17
这个可以单用模块和支持库?
作者: kyo9766    时间: 2019-12-4 08:04
已经使用了很长时间了,看看更新版,感谢大佬分享
作者: Aurora    时间: 2019-12-4 10:22
本帖最后由 Aurora 于 2019-12-4 10:36 编辑

.版本 2
.支持库 esqlite3

S3配置 (#SQLITE_配置_串行化)
状态码 = 初始化S3 ()
.如果 (状态码 ≠ #SQLITE_成功)
    无锁日志.写日志 (6, 取程序名称 (1) + “ > 初始化S3失败:” + 状态码转文本 (状态码), 真)
    返回 (假)
.否则
    无锁日志.写日志 (6, 取程序名称 (1) + “ > 初始化S3成功:” + 状态码转文本 (状态码), 真)
.如果结束
File_DB_Public = 取运行目录 () + “\Data\WebSite1.db”
Bool = SQL_DB_Public.打开 (“D:\Code\HTTPServer\Data\WebSite1.db”, #SQLITE_打开_读写, 真)

数据库不存在,创建不了数据库:unable to open database file

搞定了,这样才行
.版本 2

打开选项 = 位或 (#SQLITE_打开_创建, #SQLITE_打开_读写)
Bool = SQL_DB_Public.打开 (编码_gb2312到utf8 (“D:\Code\HTTPServer\Data\WebSite1.db”), 打开选项, 真)





作者: blueshine1618    时间: 2019-12-4 10:56
不错正好需要 谢谢分享
作者: 噢噢    时间: 2019-12-4 13:26
支持开源~!感谢分享
作者: mpsyys    时间: 2019-12-4 13:53
感谢分享,很给力!~
作者: heyyyy    时间: 2019-12-4 18:14
感谢分享,很给力!~
作者: wang171838    时间: 2019-12-4 20:56
取表内容()   数据行数是对的,但获取回来的内容少了一条,是把列表头也就是字段名当成一条数据了
作者: 散淡    时间: 2019-12-4 23:29
学习一下,谢谢分享
作者: xxhaishixx    时间: 2019-12-5 01:07
这个里面不带zipvfs,但是我有zipvfs的模块,相对数据库比较安全。
作者: 拿红颜乱浮生    时间: 2019-12-5 01:55
感谢开源,感谢感谢..
作者: tgsdhm    时间: 2019-12-5 05:44
支持一下谢谢分享
作者: sostemp    时间: 2019-12-5 08:47
感谢分享,很给力!~
作者: wanz01    时间: 2019-12-5 14:32
感谢分享!!!
作者: sampo    时间: 2019-12-5 16:13
感谢楼主分享
作者: 1689478353    时间: 2019-12-5 16:18
学习下
作者: dzb123    时间: 2019-12-5 17:04
感谢楼主分享
作者: bdancerlc    时间: 2019-12-5 17:26
和之前的版本比有什么优势吗?一直用之前的版本的串行模式,这个版本是否比串行模式效率高?
作者: 765487363    时间: 2019-12-6 03:57
高阁客竟去,小园花乱飞。
参差连曲陌,迢递送斜晖。
肠断未忍扫,眼穿仍欲归。
芳心向春尽,所得是沾衣。
作者: oin    时间: 2019-12-6 07:59
感谢楼主分享,支持一下!
作者: a287400871    时间: 2019-12-6 20:22
qlite3.30.1 数据库模块
作者: 心智帅哥    时间: 2019-12-6 21:00
支持开源,感谢分享~!
作者: wxl1231213    时间: 2019-12-6 21:05
        K大的必须要顶了
作者: sktyou    时间: 2019-12-7 10:40
支持库版本的需要sqlite3.dll跟着软件走不
作者: 锦诚    时间: 2019-12-7 17:48
感谢分享        
作者: 289062596    时间: 2019-12-7 20:48
学习学习学习学习学习学习学习学习
作者: xtavoxing    时间: 2019-12-7 20:56
请问一下.模块要和支持一起使用吗?
作者: twttak    时间: 2019-12-7 23:01
用许可证不可以吗?为什么要这么麻烦,有没人解释一下
作者: 铁血勇士    时间: 2019-12-8 01:30
  谢谢  分享     楼主牛B  学习一下
作者: 15645903131    时间: 2019-12-8 06:22
这个必须给赞
作者: 飞鱼软件    时间: 2019-12-8 13:19
        感谢分享,很给力!~
作者: 詘雲    时间: 2019-12-8 16:03
感谢楼主分享!!
作者: 心智帅哥    时间: 2019-12-8 21:39
支持开源,感谢分享~!
作者: 想学易语言    时间: 2019-12-8 22:10
谢谢分享了。
作者: kekexili    时间: 2019-12-9 00:46
共同努力,共同进步
作者: ylilike    时间: 2019-12-9 10:49
感谢分享,用了很久,非常好
作者: smk718    时间: 2019-12-9 14:57
        感谢发布原创作品,精易因你更精彩!
作者: hanliguo115    时间: 2019-12-9 20:23
支持开源~!感谢分享
作者: 心智帅哥    时间: 2019-12-9 20:57
支持开源,感谢分享~!
作者: batcd    时间: 2019-12-9 23:26
这个是大神,我认识
作者: starhacker    时间: 2019-12-10 11:17
大神的这个我收了 非常感谢
作者: q951681306    时间: 2019-12-10 11:41
        支持开源~!感谢分享
作者: 辛文玮    时间: 2019-12-10 12:28
支持开源,感谢分享 !
作者: 飞鱼软件    时间: 2019-12-10 15:31
支持开源~!感谢分享
作者: 黑色№    时间: 2019-12-10 22:52
支持了,下载来看看
作者: 咱得有自己独特    时间: 2019-12-10 23:13
支持大佬!!
作者: 飞琉k    时间: 2019-12-11 11:45
支持群主
作者: 街边太多人与车    时间: 2019-12-11 11:48
不错不错
作者: jksuan    时间: 2019-12-11 14:03
支持大佬!!
作者: 心智帅哥    时间: 2019-12-11 21:32
支持开源,感谢分享~!
作者: 2442295093    时间: 2019-12-12 13:39
感谢分享,用了很久,非常好
作者: 心智帅哥    时间: 2019-12-12 21:56
支持开源,感谢分享~!
作者: Metq    时间: 2019-12-12 23:09
顶,非常不错,如果能像以前一样调用就更完美了,小白比较多
作者: Metq    时间: 2019-12-12 23:21
感觉k大对易语言的付出
作者: sunzixian001    时间: 2019-12-14 00:29
感谢分享,很给力!~
作者: 心智帅哥    时间: 2019-12-15 21:51
支持开源,感谢分享~!
作者: LLJ    时间: 2019-12-16 06:44
支持开源~!感谢分享
作者: 心智帅哥    时间: 2019-12-16 23:10
支持开源,感谢分享~!
作者: dzb123    时间: 2019-12-17 09:19
感谢分享!!!!!
作者: shanren    时间: 2019-12-17 14:45
顶,非常不错,如果
作者: pengkai    时间: 2019-12-17 17:03
优秀啊··········
作者: 心智帅哥    时间: 2019-12-17 22:16
支持开源,感谢分享~!
作者: 晓崔同学    时间: 2019-12-19 05:22
非常好的源码
作者: 星痕彡    时间: 2019-12-19 19:23
支持开源,感谢分享~!
作者: eyk2c4    时间: 2019-12-20 00:32
增加了 事务锁状态 参数,此参数在多线程中非常重要。
作者: fuzhen11    时间: 2019-12-21 16:48
谢谢 我去试试
作者: frh35860    时间: 2019-12-21 21:44
大神,GUID类型的xx该怎么读取?读字节集类型都是返回0长度
作者: MrDeng    时间: 2019-12-23 03:51
感谢分享!!!!!
作者: heyyyy    时间: 2019-12-23 13:56
支持开源~!感谢分享
作者: 22718589    时间: 2019-12-24 20:33
支持开源~!感谢分享
作者: heiyikeji    时间: 2019-12-24 20:41
感谢分享
作者: nevergiveup520    时间: 2019-12-28 18:36
支持!!!!!!!!!!
作者: liuhuijie    时间: 2019-12-30 08:30
感谢分享!!!!!!!!!
作者: dashang    时间: 2019-12-30 16:05
支持开源~!感谢分享
作者: 流氓丶R    时间: 2020-1-2 01:29
支持下,挺好用的!
作者: 倾风听雨声    时间: 2020-1-4 00:29
        支持开源~!感谢分享
作者: pandiolo    时间: 2020-1-5 03:55
感谢分享,用了很久,非常好
作者: xy1002    时间: 2020-1-5 14:07

支持开源~!感谢分享           
作者: 小灰太狼    时间: 2020-1-6 23:09
感谢楼主.正需要最新版的.谢谢
作者: DCZ    时间: 2020-1-7 21:30
在开源中学习,谢谢分享
作者: 江洪滨    时间: 2020-1-8 12:44
感谢分享,用了很久,非常好
作者: lonely123cry    时间: 2020-1-10 10:58
非常感谢大佬!
作者: 湖平秋月    时间: 2020-1-10 13:31
sqlite支持数据库密码的吗?
作者: xiguasang    时间: 2020-1-10 14:06
非常感谢楼主的无私奉献
作者: 精益小波    时间: 2020-1-10 15:57
支持支持!
作者: 湖平秋月    时间: 2020-1-10 16:11
您好!我用80w数据的数据库查询,发现您这个版本查询所要的时间比官方的那个支持库要慢几秒,不知道是不是数据库加密的原因,希望优化。




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