我可以在运行时创建TDataSetField吗?

时间:2012-08-29 12:39:57

标签: delphi tclientdataset

我有一个简单的代码,可以在运行时创建数据集及其所有详细数据集的副本:

    DestDataSet.FieldDefs.Assign(SourceDataSet.FieldDefs);
    SourceDataSet.GetDetailDataSets(DetailList);
    for i := 0 to DetailList.Count - 1 do
    begin
      with DestDataSet.FieldDefs.AddFieldDef do
      begin
        Name := TDataSet(DetailList[i]).Name;
        DataType := ftDataSet;
      end;
      DetailCDSs.Add(NestedCDS);
    end;
    DestDataSet.CreateDataSet;

CreateDataSet引发EDBClient异常,并显示“无效字段类型”消息。谁能告诉我什么是错的?

1 个答案:

答案 0 :(得分:0)

如果您创建的数据集FieldDef包含ftDataSet个字段,则需要在创建数据集之前声明子定义。