尝试在表中插入值时数据库是否被锁定?

时间:2011-03-25 06:30:50

标签: objective-c ios4 sqlite

我正在为我的应用创建一个数据库。我成功地能够创建表,也能够在该表中插入值。在我终止我的应用程序后,再次启动应用程序&试图在其中插入一些新值,它将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(数据库);

我无法理解为什么数据库被锁定,我犯错了。
请帮我解决这个问题。 提前谢谢。

2 个答案:

答案 0 :(得分:6)

我在这个数据库锁定错误上得到了正确的解决方案。 每当我们更新或从数据库中选择任何值时,我们需要在关闭数据库之前完成语句,否则它会锁定您的数据库。语法如下:

sqlite3_finalize(语句);

波纹管链接对我有很大帮助 http://iphoneramble.blogspot.com/2009/07/sqlite-and-database-is-locked.html

答案 1 :(得分:0)

数据库必须从主包复制到文档文件夹才能写入或数据库设置为只读

抱歉英语不好,我是意大利人