Something crazy is happening with me or I am stupidly doing something wrong. I am deleting a record from Sqlite table which ends up with success. But when I again launch the app and get all, the record is still there !!
In ViewController :
[tableMessage beginUpdates];
                     [[CommonModel shared]DeleteMessage:message.MessageId];
                     [arrMessages removeObjectAtIndex:indexPath.row];
                     [tableMessage deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone];
                     [tableMessage endUpdates]; 
Sqlite deletion functions :
- (void)DeleteMessage:(NSString*)messageId{
    sqlite3_stmt *statement = nil;
    @try {
        @synchronized(self)
        {
            const char *sql = "Delete from Message where MessageId = ?";
                sqlite3_bind_text(statement, 1, [messageId UTF8String], -1, SQLITE_TRANSIENT);
            if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
            }
            else
            {
                NSLog(@"Error while preparing for Message Delete");
            }
            if(sqlite3_step(statement) == SQLITE_DONE)
            {
               // Record always gets successfully deleted
                NSLog(@"Success on Message Deletion");
                [self DeleteMessageUsers:messageId];
            }
            else
            {
                NSLog(@"Error while Deleting Message");
            }
        }
    }
    @catch (NSException *exception) {
        NSLog(@"Error in DeleteMessages : %@", exception.description);
    }
    @finally {
        sqlite3_finalize(statement);
    }
}
- (void)DeleteMessageUsers:(NSString*)messageId{
    sqlite3_stmt *statement = nil;
    @try {
        @synchronized(self)
        {
            const char *sql = "Delete from MessageUser where MessageId = ?";
            sqlite3_bind_text(statement, 1, [messageId UTF8String], -1, SQLITE_TRANSIENT);
            if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
            }
            else
            {
                NSLog(@"Error while Deleting MessageUser");
            }
            if(sqlite3_step(statement) == SQLITE_DONE)
            {
                // Record always gets successfully deleted
                NSLog(@"Success on MessageUser Deletion");
            }
            else
            {
                NSLog(@"Error while Deleting MessageUser");
            }
        }
    }
    @catch (NSException *exception) {
        NSLog(@"Error in DeleteMessageUser : %@", exception.description);
    }
    @finally {
        sqlite3_finalize(statement);
    }
}
Aucun commentaire:
Enregistrer un commentaire