Delphi .NET 1.1 NIE PRZENOSIĆ DO DZIAŁU DELPHI !

Ładuje tabele z bazy danych do DataSet. Dodaje jeszcze kilka kolumn których dane są budowane przez wyrażenie (własność Expression) oparte o pozostałe kolumny. Na końcu działania programu muszę usunąć dodane kolumny aby zrobić update bazy. No i pojawia się problem. Mimo iż usuwam powiązanie to ciągle dostaję wyjątek "Cannot remove this column, because it is a part of an expression: ...".
To chyba jakiś bug .NET 1.1, ale nie chcę od razu go obwiniać, może o czymś nie wiem. No i zaprezentuje przykładowy kodzik, który się wysypuje:

var
  ds: DataSet;
  items, groups: DataTable;

procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
begin
  //na potrzeby przykładu utworze bazę ręcznie
  items := DataTable.Create('items');
  items.Columns.Add('group', TypeOf(System.Int32));
  items.Columns.Add('value', TypeOf(System.Double));

  groups := DataTable.Create('groups');
  groups.Columns.Add('id', TypeOf(System.Int32));

  ds := DataSet.Create;
  ds.Tables.Add(items);
  ds.Tables.Add(groups);

  //dodaje relacje items.group <-> groups.id
  ds.Relations.Add('item2group', groups.Columns['id'], items.Columns['group'], False);
  //i kolumnę opartą o Expression sumującą "value" wszystkich itemów przynależnych do grupy
  groups.Columns.Add('total', TypeOf(System.Double), 'Sum(Child(item2group).value)');
end;

procedure TWinForm.Button2_Click(sender: System.Object; e: System.EventArgs);
begin
   //koniec programu, chcę usunąć kolumnę "items.value", o którą jest oparta kolumna "groups.total"
   //w przykładzie jest to zwykła kolumna, u mnie w programie będzie to kolumna oparta o inne kolumny tej samej tabeli

  //PODEJSCIE 1 - usunięcie kolumny z Expression
  groups.Columns.Remove('total');
  ds.Relations.Clear;
  Thread.Sleep(2000); //na wszelki wypadek aby inne wątki się dokończyły
  items.Columns.Remove('value'); //tu dostej wyjątek:
  //"Cannot remove this column, because it is a part of
  //an expression: total = Sum(Child(item2group).value)."
   
  //PODEJSCIE 2 - usunięcie tabeli "groups" i dataset'u
  ds.Relations.Clear;
  ds.Tables.Remove(groups);
  groups.Dispose;
  ds.Tables.Remove(items);
  ds.Dispose;
  Thread.Sleep(2000);
  items.Columns.Remove('value');//tu dostej ten sam wyjątek:
  //"Cannot remove this column, because it is a part of
  //an expression: total = Sum(Child(item2group).value)."

  //PODEJSCIE 3 - usunięcie wyrażenia
  groups.Columns['total'].Expression := '';
  ds.Relations.Clear;
  Thread.Sleep(2000);
  items.Columns.Remove('value');//tu dostej wyjątek:
  //Message: "Object reference not set to an an instance of an object"
  //StackTrace:
  // "at System.Data.DataColumnCollection.CanRemove(DataColumn column, Boolean fThrowException)
  //  at System.Data.DataColumnCollection.BaseRemove(DataColumn column)
  //  at System.Data.DataColumnCollection.Remove(DataColumn column)
  //  at System.Data.DataColumnCollection.Remove(string columnName)"
end;

Jakieś pomysły ?

//edit

PS.
Jak nie usunę tych kolumn to podczas update'u (DataSet.Update) dostaję wyjątek
System.Data.ReadOnlyException "Cannot change ReadOnly property for the expression column."