Iphone Objective-C从SQLITE数据库中删除数据时出现问题-结果代码5

Iphone Objective-C从SQLITE数据库中删除数据时出现问题-结果代码5,iphone,objective-c,ios,sqlite,Iphone,Objective C,Ios,Sqlite,我在从iPhone上的SQLite数据库中删除行/数据记录时遇到问题。我遵循了下面给出的建议,但SQLite的结果代码是5。根据SQLite参考手册,5表示: SQLITE_BUSY 5/*数据库文件已锁定*/ 有没有其他人遇到过这个问题,或者有什么想法,为什么会出现这种情况 以下是我的代码摘录(dbrc设置为5): 这意味着。您的数据库正被其他进程使用。您必须停止另一个进程并继续。 我可以给你举个例子。当您从应用程序访问数据库时,如果您尝试使用外部sqlite管理器更改内容,则会出现此繁忙错误

我在从iPhone上的SQLite数据库中删除行/数据记录时遇到问题。我遵循了下面给出的建议,但SQLite的结果代码是5。根据SQLite参考手册,5表示:

SQLITE_BUSY 5/*数据库文件已锁定*/

有没有其他人遇到过这个问题,或者有什么想法,为什么会出现这种情况

以下是我的代码摘录(dbrc设置为5):


这意味着。您的数据库正被其他进程使用。您必须停止另一个进程并继续。 我可以给你举个例子。当您从应用程序访问数据库时,如果您尝试使用外部sqlite管理器更改内容,则会出现此繁忙错误。解决此问题的方法是,停止应用程序并重试


你的问题是相似的。您的数据库已被其他进程锁定

这意味着。您的数据库正被其他进程使用。您必须停止另一个进程并继续。 我可以给你举个例子。当您从应用程序访问数据库时,如果您尝试使用外部sqlite管理器更改内容,则会出现此繁忙错误。解决此问题的方法是,停止应用程序并重试


你的问题是相似的。您的数据库已被其他进程锁定

iPhone上的另一个进程如何锁定桌面?你是对的。我在实际数据库上打开了SQLite数据库浏览器。谢谢数据正在删除。@DarkDust我不是指iphone。我指的是任何过程。您可能正在通过sqlite管理器访问数据库。我曾经做过同样的事情。。我花了三天时间才弄明白iPhone上的另一个进程如何锁定桌面?你是对的。我在实际数据库上打开了SQLite数据库浏览器。谢谢数据正在删除。@DarkDust我不是指iphone。我指的是任何过程。您可能正在通过sqlite管理器访问数据库。我曾经做过同样的事情。。我花了三天时间才弄明白X
    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);