У меня проблемы с удалением строки / записи данных из базы данных SQLite, расположенной на iPhone. Я следовал совету, данному в следующем post , но код результата из 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);