Can I create TDataSetFields at runtime?
-
29-06-2021 - |
Domanda
I have a simple code which creates a copy a dataset and all of it's detail datasets at runtime:
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
raises an EDBClient
exception with the message "Invalid Field Type". Can anyone tell me what's wrong?
Soluzione
If you create a dataset with FieldDef
having ftDataSet
fields, you need to declare the child definition before creating the dataset.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow