gpt4 book ai didi

ios - sqlite3 - iOS - 数据库被锁定

转载 作者:可可西里 更新时间:2023-11-01 06:25:13 25 4
gpt4 key购买 nike

我正在为 ipad 开发一个应用程序,我正在使用 sqlite 语句(选择、更新、插入、删除)。

我在每句话开头打开(sqlite3_open)数据库,在结尾关闭(sqlite3_close)。但有时我会收到“数据库已锁定”消息。

我不知道我能做些什么来解决这个问题。

感谢并抱歉提供这么少的信息。

最佳答案

如果我没记错的话,sqllite 的问题是你一次只能访问它一次。如果你有多个线程,你可以在这种情况下运行。示例:

在线程 t1 上运行方法 1(访问数据库)。x 秒后在线程 t2 上运行方法 2(访问数据库)。

如果 method1 在那些 x 秒内没有完成,两个方法将同时访问它。而且,正如我所说,我知道 sqllite 不支持这一点。

您应该尝试标记您的数据库的使用情况,如果您想访问它但它正在使用中,请在 x 秒后重试。像这样:

- (void) generalMethodThatUsesDatabses
{
if(databaseIsUsed)
{
[self performSelector:@selector(generalMethodThatUsesDatabses) withObject:nil afterDelay:5];
return;
}

databaseIsUsed = TRUE; //global bool variable


//your code here

databaseIsUsed = FALSE;

}

希望这对您有所帮助。干杯!

关于ios - sqlite3 - iOS - 数据库被锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12929104/

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