Иллюстрированный самоучитель по Delphi 7 для профессионалов

Абстрактный набор данных

Однако использовать его нужно аккуратно, т. к. каждое обращение к этому свойству приводит к обновлению набора данных, что может вызвать проблемы для больших таблиц или сложных запросов. Если вам нужно определить, не является ли набор данных пустым (часто используемая операция), можно использовать метод:

function IsEmpty: Boolean;

Который возвращает значение True, если набор данных пуст, или уже упоминавшиеся свойства:

…
if MyTable.Bof and MyTable.Eof
then ShowMessage('DataSet is empty');
…

Номер текущей записи позволяет узнать свойство:

property RecNo: Integer;

Размер записи в байтах возвращает свойство:

property RecordSize: Word;

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

Совокупность полей набора данных инкапсулирует свойство:

property Fields: TFields;

А все необходимые параметры полей содержатся в свойстве:

property FieldDefs: TFieldDefs;

Общее число полей набора данных возвращает свойство:

property FieldCount: Integer;

А общее число полей типа BLOB содержится в свойстве:

property BlobFieldCount: Integer;

Доступ к значениям полей текущей записи предоставляет свойство:

property FieldValues[const FieldName: string]: Variant; default;

Где в параметре FieldName задается имя поля.

В процессе программирования разработчик очень часто обращается к полям набора данных. Если структура полей набора данных жестко задана и не изменяется, это можно сделать так:

for i: = 0 to MyTable.FieldCount -1 do
MyTable.Fields[i].DiplayFormat: = '#.###';

Иначе, если порядок следования полей и их состав меняется, можно использовать метод:

function FieldByName(const FieldName: string): TField;

И делается это следующим образом:

MyTable.FieldByName('VENDORNO').Aslnteger: = 1234;

Имя поля, передаваемое в параметре FieldName, не чувствительно к регистру символов.

Метод:

procedure GetFieldNames(List: TStrings);

Вернет в параметр List полный список имен полей набора данных.

Более подробная информация о полях и способах работы с ними содержится в гл. 13.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.