加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite3 – iOS – 数据库被锁定

发布时间:2020-12-12 19:09:31 所属栏目:百科 来源:网络整理
导读:我正在为ipad开发一个应用程序,我正在使用sqlite语句(选择,更新,插入,删除). 我在开头打开(sqlite3_open)数据库,在每个句子的末尾关闭(sqlite3_close).但有时候我有“数据库被锁定”的消息. 我不知道我能做些什么来解决这个问题. 谢谢,抱歉这个小信息. 如果
我正在为ipad开发一个应用程序,我正在使用sqlite语句(选择,更新,插入,删除).

我在开头打开(sqlite3_open)数据库,在每个句子的末尾关闭(sqlite3_close).但有时候我有“数据库被锁定”的消息.

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

谢谢,抱歉这个小信息.

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

在线程t1上运行method1(访问数据库).
在x秒后在线程t2上运行method2(访问数据库).

如果在这些x秒内没有完成method1,则两个方法将同时访问它.
而且,正如我所说,我知道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;

}

希望这可以帮助.干杯!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读