/ / Objective-C Problema con l'eliminazione dei dati dal database SQLITE - codice risultato 5 - iphone, goal-c, ios, sqlite3

Objective-C Problema con l'eliminazione dei dati dal database SQLITE - codice risultato 5 - iphone, obiettivo-c, ios, sqlite3

Riscontro problemi con l'eliminazione di una riga / record di dati da un database SQLite situato su iPhone. Ho seguito i consigli forniti di seguito inviare, ma il codice risultato di SQLite è 5. Dal manuale di riferimento di SQLite, 5 significa:

SQLITE_BUSY 5 / * Il file di database è bloccato * /

Qualcun altro ha riscontrato questo problema o ha qualche idea del perché questo sarebbe il caso?

Ecco un estratto del mio codice (dbrc è impostato su 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);

risposte:

1 per risposta № 1

Questo significa. il tuo database viene utilizzato da altri processi. devi interrompere l'altro processo e procedere. Posso darti un esempio. quando si accede a un database dalla propria app e se si tenta di modificare il contenuto utilizzando un gestore sqlite esterno, viene visualizzato questo errore di occupato. La soluzione a questo problema è, fermare l'app e provare.

Il tuo problema è simile. Il tuo database è bloccato da qualche altro processo.