我在尝试从另一个线程插入数据时读取sqlite数据库,但是我遇到了锁定数据库错误。我尝试读取内容时尝试创建数据库的新实例,但是我得到了同样的错误。如果您有任何资源或任何如何解决此问题的想法,那将是一个很大的帮助。
以下是我用来启动数据库的代码:
- (id)initWithDB:(NSString*)dbName{
if(self = [super init])
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:dbName];
if (sqlite3_open([writableDBPath UTF8String], &_database) != SQLITE_OK) {
NSLog(@"could not prepare statement: %s\n", sqlite3_errmsg(_database));
NSLog(@"Failed to open database!");
}
}
return self;
}
答案 0 :(得分:0)
感谢@CL,我可以通过添加
解决此问题sqlite3_exec(_database, "PRAGMA journal_mode=WAL;", 0, 0, 0);
在sqlite3_open()函数之后。