TFieldDefs *pDefs = Form1->ClientDataSet4->FieldDefs;
TFieldDef *pDef = pDefs->AddFieldDef();
pDef->DataType = ftString;
pDef->Size = 25;
pDef->Name = "ID";
pDef = pDefs->AddFieldDef();
pDef->DataType = ftString;
pDef->Size = 40;
pDef->Name = "Collector";
pDef = pDefs->AddFieldDef();
pDef->DataType = ftString;
pDef->Size = 40;
pDef->Name = "REC";
pDef = pDefs->AddFieldDef();
pDef->DataType = ftString;
pDef->Size = 40;
pDef->Name = "Complex";
TIndexDef *pIDef = Form1->ClientDataSet4->IndexDefs->AddIndexDef();
pIDef->Fields = "Collector";
pIDef->Name = "MyIndex";
TIndexDef *pIDef2 = Form1->ClientDataSet4->IndexDefs->AddIndexDef();
pIDef2->Fields = "REC";
pIDef2->Name = "MyIndex2";
TIndexDef *pIDef3 = Form1->ClientDataSet4->IndexDefs->AddIndexDef();
pIDef3->Fields = "Complex";
pIDef3->Name = "MyIndex4";
Form1->ClientDataSet4->CreateDataSet();
//далее заполнение данными
****************
//затем отображение в гриде через DataSource:
Form1->DataSource5->DataSet = Form1->ClientDataSet4;
ClientDataSet
Код:
Как теперь очисть ClientDataSet4 от индексов и полей, т.е. привести его в состояние, как будто его только положили на форму? Это нужно для формирования новой структуры ClientDataSet4. Динамически создавать ClientDataSet4 мне не подходит. Формируется в одной форме, используется в другой.
Пробовала чистить так:
Код:
if(Form1->ClientDataSet4->FieldDefs->Count)
{
Form1->ClientDataSet4->Edit();
Form1->ClientDataSet4->FieldDefs->Clear();
Form1->ClientDataSet4->Fields->Clear();
Form1->ClientDataSet4->FieldDefs->Update();
Form1->ClientDataSet4->IndexDefs->Clear();
Form1->ClientDataSet4->IndexDefs->Update();
Form1->ClientDataSet4->Close();
}
//и так
if(Form1->ClientDataSet4->FieldDefs->Count)
{
Form1->DataSource5->DataSet->Close();
}
// и так
if(Form1->ClientDataSet4->FieldDefs->Count)
{
Form1->DataSource5->DataSet->Close();
}
{
Form1->ClientDataSet4->Edit();
Form1->ClientDataSet4->FieldDefs->Clear();
Form1->ClientDataSet4->Fields->Clear();
Form1->ClientDataSet4->FieldDefs->Update();
Form1->ClientDataSet4->IndexDefs->Clear();
Form1->ClientDataSet4->IndexDefs->Update();
Form1->ClientDataSet4->Close();
}
//и так
if(Form1->ClientDataSet4->FieldDefs->Count)
{
Form1->DataSource5->DataSet->Close();
}
// и так
if(Form1->ClientDataSet4->FieldDefs->Count)
{
Form1->DataSource5->DataSet->Close();
}
Ничего не получается, пишет то поля определены уже, то индексы. Как привести ClientDataSet4 в состояние полной очистки?
Cпасибо.