Danke für den Hinweis. Ehrlich gesagt, finde ich das sehr aufwändig.
Momentan habe ich eine eigene Routine für CopyStructure erstellt, welche mir die Fielddefs kopiert.
Delphi-Quellcode:
Procedure MyCopyStructure(aFromDS, aToDS: TDataSet);
var i: Integer;
begin
aToDS.Close;
aToDS.FieldDefs.Clear;
for i := 0 to aFromDS.FieldDefs.Count - 1 do
aToDS.FieldDefs.Add(aFromDS.FieldDefs[i].Name,
aFromDS.FieldDefs[i].DataType,
aFromDS.FieldDefs[i].Size,
aFromDS.FieldDefs[i].Required);
//...
end;
Anschließend besteht ohne Weiteres die Möglichkeit, über Fielddefs.Add weitere Felder hinzuzufügen.
Warum geht das mit der Standard-Routine nicht? Was macht CopyStructure anders? Es kann doch eigentlich nur ein Flag sein, welches anschließend verhindert, dass die Struktur weiter angepasst werden kann.
Auch wenn das Problem erstmal so umgangen werden kann, würde es mich trotzdem sehr interessieren, eine direkte Lösung zu finden.