1

我目前正在编写一个使用 sqlite3 与 Windows 系统上的数据库通信的 .dll。

现在,它非常简单,我刚刚编写了一个从数据库中插入和选择的测试程序。

然而,这个问题是我的 dll 将被同一系统上的多个程序使用,每个程序都写入同一个数据库文件。这当然会带来互斥锁问题。

在继续为它编写一个复杂的连接池之前,我想知道 sqlite3 库在多大程度上支持它。根据文档,有诸如“共享缓存”和“无互斥”模式之类的东西,由赋予sqlite3_open_v2函数的参数指定:http ://www.sqlite.org/c3ref/open.html

我也四处寻找一些 sqlite3 包装器,但我找不到任何适合我的多访问需求的东西。

有没有人有从使用相同 .dll 的多个进程写入 sqlite3 db 文件的经验?或者有没有人使用他们的运气SHARED_CACHES- 我似乎遇到了各种各样的问题。

任何关于此事的帮助都会很棒,谢谢!

~ 丹

4

1 回答 1

0

只要你通过 SQLite3 访问同一个数据库文件,应该没问题。事实上,SQLite3 是专门为处理访问同一个数据库文件的多个进程而设计的。

SQL,作为一种规范,已经处理了多种访问,它为原子访问等(事务,诸如此类)提供了控制。只要你正确使用这些控件,你应该是文件。

SQLite3 有多个线程存在问题。

于 2012-08-20T06:54:23.527 回答