我正在为我的应用创建一个数据库。我成功地能够创建表,也能够在该表中插入值。在我终止我的应用程序后,再次启动应用程序&试图在其中插入一些新值,它将errorString作为“数据库被锁定”。这是我的代码
if(sqlite3_open([path UTF8String],& database)== SQLITE_OK)
{
sqlStmt = [[NSString stringWithFormat:@“插入ePubTable值('%@');”,ePubTitle] cStringUsingEncoding:NSUTF8StringEncoding];int retVal = sqlite3_exec(database,sqlStmt,NULL,NULL,& errString);
如果(retVal的== 0)
printf(“数据已插入”);
}sqlite3_close(数据库);
我无法理解为什么数据库被锁定,我犯错了。
请帮我解决这个问题。
提前谢谢。
答案 0 :(得分:6)
我在这个数据库锁定错误上得到了正确的解决方案。 每当我们更新或从数据库中选择任何值时,我们需要在关闭数据库之前完成语句,否则它会锁定您的数据库。语法如下:
sqlite3_finalize(语句);
波纹管链接对我有很大帮助 http://iphoneramble.blogspot.com/2009/07/sqlite-and-database-is-locked.html
答案 1 :(得分:0)
数据库必须从主包复制到文档文件夹才能写入或数据库设置为只读
抱歉英语不好,我是意大利人