我在打开SQLite3数据库时遇到了一个奇怪的问题。
场景:用户点击ListView上的一行,打开数据库,然后再次成功关闭。在用户在该行上多次点击之前不会发生任何问题,然后数据库无法打开。传统上在主线程上调用该函数,因此只能发生一个进程,从理论上可以避免这个问题。
功能调用:
[self openDB];
对象代码:
-(void)OpenDataBase{
if (sqlite3_open([[self dataFilePath] UTF8String], &sharedDataBase)!= SQLITE_OK) {
sqlite3_close(sharedDataBase);
NSLog(@"Failed to open database");
}
}
记录:
无法打开数据库
访问数据库时出错。错误代码是:21
有关如何解决此问题的任何建议吗?
编辑以下是错误打印输出:无法打开数据库文件
答案 0 :(得分:0)
根据@rmaddy在问题评论中提供的信息,这对我有用:
我初始化数据库,然后在应用程序中只打开一次数据库。我已经对它进行了测试,即使用力关闭,它也不需要关闭。
最初,每次我需要访问它时,数据库都会打开和关闭,但这不是必需的。现在它只打开一次,应用程序运行得更快。
感谢@rmaddy提供的意见和建议。