Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C++;节目?_C++_Database_Sqlite_Wal - Fatal编程技术网

C++ 如何在C++;节目?

C++ 如何在C++;节目?,c++,database,sqlite,wal,C++,Database,Sqlite,Wal,我目前有两个不同的进程,一个进程写入数据库,另一个进程读取并更新第一个进程插入的数据库中的记录。每次我试图同时启动这两个进程时,数据库就会被锁定,这是有意义的。由于同时读写。我遇到了WAL,但还没有找到任何例子来说明如何在一个C++代码中启用WAL。任何帮助都将不胜感激。谢谢。要按激活它,只需运行以下语句: PRAGMA journal_mode=WAL 这是持久性的,只需要应用一次。SQLite是否允许从不同进程进行并发访问?我认为它被锁定,只能在一个进程内完成。如果您需要一个更健壮的数据库

我目前有两个不同的进程,一个进程写入数据库,另一个进程读取并更新第一个进程插入的数据库中的记录。每次我试图同时启动这两个进程时,数据库就会被锁定,这是有意义的。由于同时读写。我遇到了WAL,但还没有找到任何例子来说明如何在一个C++代码中启用WAL。任何帮助都将不胜感激。谢谢。

要按激活它,只需运行以下语句:

PRAGMA journal_mode=WAL

这是持久性的,只需要应用一次。

SQLite是否允许从不同进程进行并发访问?我认为它被锁定,只能在一个进程内完成。如果您需要一个更健壮的数据库,请考虑PASGRESs或为并发、多进程访问而明确设计的东西。@ TADMAN:看起来SQLite可以使用共享内存。博士后可以在不同的计算机上工作。这仍然是SQLite的一个问题。@MSalters我相信并发性是使用写前日志记录可以实现的。还是我弄错了?我不确定访问同一数据库的进程之间是否有可用的并发功能。根据我的经验,SQLite在一个进程中表现得非常好,但在争夺同一资源时往往表现不佳。