SQLite 3数据库开放问题

时间:2014-04-27 21:36:39

标签: ios objective-c database sqlite

我在打开SQLite3数据库时遇到了一个奇怪的问题。

场景:用户点击ListView上的一行,打开数据库,然后再次成功关闭。在用户在该行上多次点击之前不会发生任何问题,然后数据库无法打开。传统上在主线程上调用该函数,因此只能发生一个进程,从理论上可以避免这个问题。

功能调用:

[self openDB];

对象代码:

-(void)OpenDataBase{
    if (sqlite3_open([[self dataFilePath] UTF8String], &sharedDataBase)!= SQLITE_OK) {
        sqlite3_close(sharedDataBase);
        NSLog(@"Failed to open database");
    }
}

记录:

  

无法打开数据库

     

访问数据库时出错。错误代码是:21

有关如何解决此问题的任何建议吗?

编辑以下是错误打印输出:无法打开数据库文件

1 个答案:

答案 0 :(得分:0)

根据@rmaddy在问题评论中提供的信息,这对我有用:

我初始化数据库,然后在应用程序中只打开一次数据库。我已经对它进行了测试,即使用力关闭,它也不需要关闭。

最初,每次我需要访问它时,数据库都会打开和关闭,但这不是必需的。现在它只打开一次,应用程序运行得更快。

感谢@rmaddy提供的意见和建议。