Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ClientDataSet

3.0K
27 декабря 2005 года
Inga
79 / / 27.12.2005
Есть код заполняющий ClientDataSet:
Код:
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;

Как теперь очисть 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();
}

Ничего не получается, пишет то поля определены уже, то индексы. Как привести ClientDataSet4 в состояние полной очистки?
Cпасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог