Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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+中的sqlite+;-来自不同应用程序的并行插入,会发生什么?_C++_Sqlite - Fatal编程技术网

C++ c+中的sqlite+;-来自不同应用程序的并行插入,会发生什么?

C++ c+中的sqlite+;-来自不同应用程序的并行插入,会发生什么?,c++,sqlite,C++,Sqlite,我正在用sqlite3\u open打开sqlite数据库文件,并用sqlite3\u exec插入数据 该文件是一个全局日志文件,许多用户正在写入该文件 现在我想知道,如果两个具有两个不同程序实例的不同用户同时尝试插入数据会发生什么。。。第二个用户的打开是否失败?还是插入 在这种情况下会发生什么 如果这个场景不起作用,有没有办法处理这个问题?没有服务器端数据库?在大多数情况下是的。它使用文件锁定,但在某些系统上会被破坏,请参见简而言之,锁定是在启动事务时创建的,并在启动事务后立即释放。锁定时,

我正在用
sqlite3\u open
打开sqlite数据库文件,并用
sqlite3\u exec
插入数据

该文件是一个全局日志文件,许多用户正在写入该文件

现在我想知道,如果两个具有两个不同程序实例的不同用户同时尝试插入数据会发生什么。。。第二个用户的打开是否失败?还是插入

在这种情况下会发生什么


如果这个场景不起作用,有没有办法处理这个问题?没有服务器端数据库?

在大多数情况下是的。它使用文件锁定,但在某些系统上会被破坏,请参见

简而言之,锁定是在启动事务时创建的,并在启动事务后立即释放。锁定时,其他实例既不能读取也不能写入数据库(在“大”数据库中,它们仍然可以读取)。但是,您可以在中连接sqlite。
当您想要写入被另一个进程锁定的数据库时,执行会暂停指定的超时时间,默认为5秒。如果锁被释放,它将继续写入,否则将引发错误

好的,谢谢。。。将查看
sqlite3\u busy\u处理程序()
sqlite3\u busy\u超时()
,这些看起来很有趣。。。