//在原有数据集上是加不进去的。可以再做一个FDMemtable,然后
FDMemTable_新数据集.FieldDefs.Assign(DataSet_原数据集.FieldDefs);
FDMemTable_新数据集.FieldDefs.Add('新加字段', ftFloat);
FDMemTable_新数据集.CreateDataSet; //建立数据集
//将数据转移过来
FDMemTable_新数据集.CopyDataSet(DataSet_原数据集[coAppend]);
//
while not FDMemTable_新数据集.eof do
begin
FDMemTable_新数据集.edit;
//给新字段赋值 或者用计算字段显示赋值。
FDMemTable_新数据集.Post;
FDMemTable_新数据集.next;
end;
其他人写的代码:
procedure TForm1.AddFieldTest;
var
DataFN : String;
TempMemTable : TFDMemTable;
begin
// Added, to avoid relative path for data file name
DataFN := ExtractFilePath(Application.ExeName) + 'Data.Xml';
FDMemTable1.FieldDefs.Add('ID', ftInteger, 0, false);
FDMemTable1.FieldDefs.Add('name', ftString, 30, false);
FDMemTable1.FieldDefs.Add('QualityID', ftInteger, 0, false);
FDMemTable1.CreateDataSet;