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