gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:57 24 4
gpt4 key购买 nike

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

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

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

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

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

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

任何帮助都将非常有用,谢谢!

~丹

最佳答案

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

作为一种规范,SQL 已经处理了多重访问,并且它提供了对原子访问等(事务之类的东西)的控制。只要您正确使用这些控件,您就应该保持警惕。

SQLite3 存在问题的是多个线程

关于c++ - DLL使用sqlite3从不同进程写入同一个数据库文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12033145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com