![](/img/trans.png)
[英]How to post and get data from SQLite database on objective-c iphone app?
[英]Objective-C Issue with deleting data from SQLITE database - result code 5
我从iPhone上的SQLite数据库删除行/数据记录时遇到问题。 我遵循了以下文章中给出的建议,但是SQLite的结果代码为5。从SQLite参考手册中,5表示:
SQLITE_BUSY 5 / *数据库文件已锁定* /
有没有其他人遇到这个问题或有任何想法为什么会这样呢?
这是我的代码的摘录(dbrc设置为5):
NSString *retrievedContactID = [archivedContact objectForKey:@"contact_id"];
sqlite3 *database = [FollowUPAppDelegate checkAndCreateDatabase];
NSString *deleteSQL = [NSString stringWithFormat:@"DELETE FROM Contacts WHERE contact_id = %@", retrievedContactID];
const char *delete_stmt = [deleteSQL UTF8String];
sqlite3_stmt *compiledStatement;
int dbrc; //database return code
dbrc = sqlite3_prepare_v2(database, delete_stmt, -1, &compiledStatement, NULL);
dbrc = sqlite3_step(compiledStatement);
sqlite3_finalize(compiledStatement);
compiledStatement = NULL;
if (dbrc != 101) { //anything except 101 (SQLITE_DONE for delete, *not* SQLITE_OK)
NSLog(@"Error deleting contact from database: result code %i", dbrc);
return;
}
else {
NSLog(@"deleted the customer from datasets");
}
sqlite3_close(database);
这意味着。 您的数据库正在被其他进程使用。 您必须停止其他过程并继续。 我可以举一个例子。 当您从应用程序访问数据库时,如果尝试使用某些外部sqlite管理器更改内容,则会收到此繁忙错误。 解决此问题的方法是,停止您的应用并尝试。
您的问题是相似的。 您的数据库已被其他进程锁定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.