Dans UITableView
, je souhaite supprimer une ligne et supprimer cette ligne de la base de données, mais ma requête de sqlite ne fonctionne pas.Suppression d'une ligne dans SQLite 3
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
UIAlertView *view;
sqlite3 *database;
int result = sqlite3_open("/quickdatabase.sqlite", &database);
if(result != SQLITE_OK) {
sqlite3_close(database);
view = [[UIAlertView alloc] initWithTitle:@"Database Error" message:@"Falha ao carregar o banco de dados.." delegate:self cancelButtonTitle:@"Cancelar" otherButtonTitles:nil];
[view show];
[view release];
return;
} else {
NSString *query = [NSString stringWithFormat:@"DELETE FROM Enquetes WHERE Pergunta = '%@' AND Nome = '%@'", [arraySQL objectAtIndex:indexPath.row], [arrayAsk objectAtIndex:indexPath.row]];
sqlite3_exec(database, [query UTF8String], NULL, NULL, NULL);
sqlite3_close(database);
view = [[UIAlertView alloc] initWithTitle:@"ArrayAsk" message:[arrayAsk objectAtIndex:indexPath.row] delegate:nil cancelButtonTitle:@"Cancelar" otherButtonTitles:nil];
[view show];
[view release];
view = [[UIAlertView alloc] initWithTitle:@"ArraySQL" message:[arraySQL objectAtIndex:indexPath.row] delegate:nil cancelButtonTitle:@"Cancelar" otherButtonTitles:nil];
[view show];
[view release];
[arrayAsk removeObjectAtIndex:indexPath.row];
[arraySQL removeObjectAtIndex:indexPath.row];
[tableView reloadData];
}
}
}
Pourquoi cela ne fonctionne-t-il pas?
Où puis-je voir un bon tutoriel sur le framework FMDB?
+1 pour le lien –
Dans l'exemple, aucun exemple de requête à supprimer. Il suffit d'insérer, mettre à jour et créer une nouvelle table. –
Passez votre DELETE à executeUpdate, comme les INSERT et CREATEs de l'exemple. –