C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 11 - Коллекция TFieldDefs / BDE / Borland C++

Шаг 11 - Коллекция TFieldDefs

Коллекция - в общем-то, специальный список с конкретизированными под данные нужды методами и свойствами. Вот TFieldDefs - коллекция для определений TFieldDef, рассмотренных в предыдущем шаге.

  • HiddenFields
    Определеят, следует ли отображать дополнительные скрытые поля в запросе к базе данных. Преимущественно для внутреннего использования.
  • Items
    Свойство типа массив, содержащее указатели на объекты типа TFieldDef.
  • ParentDef
    Вроде мы уже это видели :). Определяет родительское (parent)поле. Логично :).
  • DataSet
    Набор данных, использующий данную коллекцию. Я уже говорил, что по иерархии к DataSet относятся TTable и TDataSource.
  • Updated
    Определяет, совпадают ли определения полей в реальном наборе данных и в данной коллекции.
  • Count
    Хм... Думаю, объяснять не надо.
  • ItemClass
    Какой класс у содержащихся элементов. Как-то не звучит. Скажем по другому - у элементов, содержащихся в коллекции.

Это были свойства. А теперь методы.

Add

Описание -

HIDESBASE void __fastcall Add(const AnsiString Name, TFieldType DataType, int Size, bool Required);

Эта функция является obsolete, то есть устаревшей. Она используется в VCL только для совместимости со старыми программами, написанными, скажем для Delphi 2 или, там Delphi 1. Это же не IE, который если новый появляется, то через год у 50% стоит, а через два - у 100%. Я, например, часто встречаю компоненты, написанные для Delphi 2 или Delphi 3. Естественно, C++Builder 4 попадается. Как это ни странно, иногда легче на BCPPB 5 заставить работать эти вещи, чем на Delphi 5.

Что-то я заговорился. Этакое лирическое отступление. Так вот. Параметр Name определяет имя для нового FieldDef, dataType тип поля, Size его размер, ну а Required - обязательно ли присвоение значения этому полю. Теперь буду короче говорить - обязательно ли поле или нет.

Пример использования - Table1->FieldDefs->Add("IntField",ftInteger,4,false);.

AddFieldDef

Описание -

TFieldDef* __fastcall AddFieldDef(void);

Этот метод возвращает указатель на новый объект типа TFieldDef, а потом уже можно с этим указателем делать все что угодно. Пример:

void TForm1::Example()
{
TFieldDef* def = Table1->FieldDefs->AddFieldDef();
def->DataType=ftString; //например
def->Size=20;
def->Required=true;//тоже например
}

Update

Описание -

HIDESBASE void __fastcall Update(void);

Обновляет записи в источнике данных (чаще всего таблице).

Find

Описание -

HIDESBASE TFieldDef* __fastcall Find(const AnsiString Name);

Производит поиск по коллекции, сравнивая значения Name полей. Как видно из описания, возвращает указатель на объект найденный. Если он не найден, то... Как это ни странно, возвращается не NULL, а чтобы определить, найден или нет, нужно вызвать метод IndexOf класса TDefCollection (предок TFieldDefs). О нем.

IndexOf

Описание -

int __fastcall IndexOf(const AnsiString AName);

Возвращает индекс данного объекта TFieldDef. Если нет такого, возвращается -1.

Вот и все для этого шага.


| |
Автор Аванесов Самвел.
[AD]