Data.DB.TDataSet.GetClonedDataSet
Delphi
function GetClonedDataSet(WithSettings: Boolean): TDataSet; virtual;
C++
virtual TDataSet* __fastcall GetClonedDataSet(bool WithSettings);
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
function | public | Data.DB.pas Data.DB.hpp |
Data.DB | TDataSet |
Description
Creates a new instance of the TDataSet derived class and clones the structure and data of this dataset to the new instance.
Use this method to create a cloned instance of this dataset. The NestedDataSetClass property determines the class type of this cloned dataset.
To control the properties of the cloned dataset, use the boolean parameter WithSettings
:
WithSettings=true
: the cloned dataset inherits the basic settings of this dataset.WithSettings=false
: the cloned dataset will use the default settings.
Note
Only the following classes support the cloning procedure:
- TCustomADODataSet derived classes
- TCustomClientDataSet derived classes
- TFDDataSet derived classes.
If the TDataSet derived class does not support cloning, this method returns
nil
.
Examples
To clarify, consider the following sample code snippets. This sample illustrates how to create a new cloned instance of the TDataSet derived class, and then add the Name field values of the cloned dataset to the Memo component.
Delphi:
var
FDMemTable1: TFDMemTable;
Memo1 : TMemo;
ds: TDataSet;
//...
ds := FDMemTable1.GetClonedDataSet(True);
try
Memo1.Lines.Clear;
while not ds.Eof do
begin
Memo1.Lines.Add(ds['Name']);
ds.Next;
end;
finally
ds.Free;
end;
C++Builder:
{
TFDMemTable *FDMemTable1;
TMemo *Memo1;
TDataSet *ds;
// ...
ds = FDMemTable1->GetClonedDataSet(true);
__try {
Memo1->Lines->Clear();
while (! ds->Eof) {
Memo1->Lines->Add(ds->FieldValues["Name"]);
ds->Next();
}
}
__finally {
delete ds;
}
}