मैं एक TClientDataSet क्लोन कर रहा हूं और मैं क्लोन में सभी फ़ील्ड कॉपी करना चाहता हूं (जो एक नया डेटासेट है), मुझे पता है कि मैं फ़ील्ड के माध्यम से लूप कर सकता हूं और जानकारी कॉपी कर सकता हूं, या अपनी कक्षा के 2 उदाहरण बना सकता हूं और क्लोन कर सकता हूं कर्सर, लेकिन क्या कोई बेहतर तरीका है? कुछ नया डेटासेट बनाने और फ़ील्ड जानकारी असाइन करने की तरह कुछ?क्या सभी डेटासेट फ़ील्ड और उनकी गुणों को किसी अन्य डेटासेट में कॉपी करने का कोई बेहतर तरीका है?
संपादित करें:
निम्नलिखित वर्ग सहायक विधि मेरे लिए काम करता है:
procedure TDataSetHelper.CopyFieldDefs(Source: TDataSet);
var
Field, NewField: TField;
FieldDef: TFieldDef;
begin
for Field in Source.Fields do
begin
FieldDef := FieldDefs.AddFieldDef;
FieldDef.DataType := Field.DataType;
FieldDef.Size := Field.Size;
FieldDef.Name := Field.FieldName;
NewField := FieldDef.CreateField(Self);
NewField.Visible := Field.Visible;
NewField.DisplayLabel := Field.DisplayLabel;
NewField.DisplayWidth := Field.DisplayWidth;
NewField.EditMask := Field.EditMask;
if IsPublishedProp(Field, 'currency') then
SetPropValue(NewField, 'currency', GetPropValue(Field, 'currency'));
end;
end;
किसी को भी ऐसा करने के लिए एक बेहतर तरीका है?
यह अपेक्षा नहीं करता था जैसा कि मैंने उम्मीद की थी, "मुद्रा" जैसी कुछ संपत्तियों को नए डेटासेट में कॉपी नहीं किया गया था, मैं क्लोन डेटासेट में सभी फ़ील्ड की सेटिंग्स रखना चाहता हूं। –