SQLiteデータベースを使用して、1)何らかの値、2)何らかの値などの形式でテーブルビューにデータをロードしました。1 と 2 は主キーです。これは、テーブル ビューのスワイプ削除機能に追加した削除のコードです。
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
[self openDB];
NSString *idofTable = [NSString new];
NSScanner *scanner = [[NSScanner alloc] initWithString:[self.tableLogView cellForRowAtIndexPath:indexPath].textLabel.text];
[scanner scanUpToString:@")" intoString:&idofTable];
NSLog(@"id=%@, text=%@", idofTable, [self.tableLogView cellForRowAtIndexPath:indexPath].textLabel.text);
if(editingStyle==UITableViewCellEditingStyleDelete)
{
char *error;
NSString *sql = [NSString stringWithFormat:@"DELETE FROM History WHERE 'id' = '%@'", idofTable];
NSLog(@"%@",sql);
if(sqlite3_exec(db, [sql UTF8String], NULL, NULL,&error)!=SQLITE_OK)
{
sqlite3_close(db);
NSAssert(0,@"Could not create table");
}
else
{
NSLog(@"Data Deleted");
sqlite3_exec(db, "COMMIT", NULL, NULL, &error);
}
}
[tableLogView reloadData];
}
ログ「データが削除されました」が出力されますが、データはデータベースでもテーブルビューでも削除されません。どんな助けでも感謝します。エラーが発生している場所がわかりません。クエリは正しいようです。