Brad-ley
Brad-ley

Reputation: 43

delete SQLITE row UITABLEVIEW

Can you spot anything that would cause this to not work?

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

if (editingStyle == UITableViewCellEditingStyleDelete) {
    int record_to_delete = [[[data objectAtIndex:indexPath.row] recordID] integerValue];
    [data removeObjectAtIndex:indexPath.row];
    [self.tableView deleteRowsAtIndexPaths:[NSMutableArray arrayWithObject:indexPath] withRowAnimation:YES];
    //Delete from TABLENAME where CRITERIA1=VALUE1 (AND CRITERIA2=VALUE2...)
    //Delete from Data where RecordID=xxx

    sqlite3 *database;
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
        NSString *sqlStatement = [NSString stringWithFormat:@"delete from Data where RecordID = %d",record_to_delete];
        NSLog(@"Statement is: %@", sqlStatement);
        sqlite3_stmt *compiledStatement;
        NSLog(@"Statement");
        if(sqlite3_prepare_v2(database, [sqlStatement UTF8String], -1, &compiledStatement, NULL) == SQLITE_OK){
        }
        NSLog(@"Deleting");
        sqlite3_finalize(compiledStatement);
        NSLog(@"Deleted");
    }
    sqlite3_close(database);

}
}

The SQL statement works fine when executed in my database software. However when run on the iPhone simulator it does not delete it from the Database. Any help would be greatly appreciated. Sorry I can't be more specific.

Thanks

2013-03-18 18:45:07.211 Navigation[842:c07] Statement is: delete from Data where RecordID = 1
2013-03-18 18:45:07.212 Navigation[842:c07] Statement
2013-03-18 18:45:07.212 Navigation[842:c07] Deleting
2013-03-18 18:45:07.213 Navigation[842:c07] Deleted

UPDATE: Managed to get it to work. I was just missing.

sqlite3_step(compiledStatement)

Thanks anyway.

Upvotes: 0

Views: 1279

Answers (1)

Ramy Al Zuhouri
Ramy Al Zuhouri

Reputation: 21966

In iOS you don't have write access to the app bundle. The suggested way is to copy the database into the document folder at the first time you run the app, and then manage the database from there.

Look here: Unable to connect SQLite Database in iOS

Upvotes: 1

Related Questions