繁体   English   中英

DLL使用sqlite3从不同进程写入同一数据库文件

[英]DLL uses sqlite3 to write to same database file from different processes

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

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

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

我想知道sqlite3库在多大程度上支持此功能,然后再为它编写一个复杂的连接池。 根据doco的说法,为sqlite3_open_v2函数指定的参数中指定了“共享缓存”和“无互斥”模式等内容: http : sqlite3_open_v2

我还寻找了一些sqlite3包装器,但是找不到适合我的多址访问需求的东西。

有没有人有过使用相同.dll的多个进程写入sqlite3 db文件的经验? 还是有人在使用其SHARED_CACHES有运气-我似乎遇到了各种各样的问题。

谢谢您的帮助!

〜丹

只要您通过SQLite3访问相同的数据库文件,就可以了。 实际上,SQLite3专为处理访问同一数据库文件的多个进程而设计。

作为一种规范,SQL已经处理了多次访问,并且它提供了用于原子访问等的控件(事务,诸如此类)。 只要您正确使用这些控件,就应该保持文件状态。

SQLite3遇到了多个线程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM