sqlite3.30.1 数据库模块+支持库

本次更新对于支持库来说,接口改动不大,模块版的话是尽量和支持库接口保持一致,所以对于以前的模块接口可能改动就大了。

要解决多线程问题,主要是对sqlite3的锁机制进行了解,和事务有密切的关系。本次更新的版本在开始事务时,增加了一个 事务锁状态 的参数。

拿简单的话来描述就是 开始事务 时如果

设置了 事务锁状态_ 立即 参数,那么这个时候其他线程的连接就不能写操作了,但是可以读操作,但是在提交事务时也要等待所有读操作完成了才能提交。

设置了 事务锁状态_ 独占 参数,那么这个时候其他线程的连接读写都不可以了。

在等待的时候就处于繁忙状态,我们可以设置 数据库.繁忙超时()来设置等待时间。

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

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

esqlite3 V1.1 相对于1.0的更新

1、增加了全局命令:

S3互斥体进入

S3互斥体退出

S3聚合上下文

S3取数据库自上下文

2、增加了zySqlite数据库 命令

繁忙超时

繁忙处理

取文件名

是否只读

取互斥体

是否自动提交

进度处理

取下一记录集

取总影响行

3、增加了 zySqlite记录集 命令

是否繁忙

是否只读

取数据库句柄

取行数

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

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

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注