Ich mache es so:
Select *, 0 as UserSelectable from MyTable
Ich bekomme eine Tabelle mit allen Feldern der Tabelle und zusätzlich noch eins 'UserSelectable', in dem ich rumwuseln kann (z.B. eine über Checkbox Daten verändern).
Alternativ kannst Du dir zur Laufzeit auch ein Feld erzeugen.
Hier als Beispiel ein TIntegerField. Andere Feldtypen benötigen eventuell weitere Eigenschaften (Size, Precision etc.)
Delphi-Quellcode:
With TIntegerField.Create (MyDataSet) Do Begin
FieldName := 'AllesWasDuWillst';
Calculated := False;
FieldKind := fkData;
DataSet := MyDataSet;
End;
...
MyDataSet.fieldDefs.update;