Абстрактный набор данных
В основе иерархии классов, обеспечивающих функционирование наборов данных в приложениях баз данных Delphi, лежит класс TDataSet. Хотя он почти не содержит методов, реально обеспечивающих работоспособность основных механизмов набора данных, тем не менее его значение трудно переоценить.
Этот класс задает структурную основу функционирования набора данных. Другими словами, это скелет набора данных, к методам которого необходимо лишь добавить требуемые вызовы соответствующих функций реальных технологий.
При решении наиболее распространенных задач программирования в процессе создания приложений баз данных класс TDataSet не нужен. Тем не менее знание основных принципов работы набора данных всегда полезно. Кроме этого, класс TDataSet может использоваться разработчиками в качестве основы для создания собственных компонентов. Поэтому рассмотрим основные механизмы, реализованные в наборе данных.
Набор данных открывается и закрывается свойством:
property Active: Boolean;
Которому соответственно необходимо присвоить значение True или False.
Аналогичные действия выполняют методы:
procedure Open; procedure Close;
После открытия набора данных можно перемещаться по его записям.
На одну запись вперед и назад перемещают курсор соответственно методы:
procedure Next; procedure Prior;
На первую и последнюю запись можно попасть, используя соответственно методы:
procedure First; procedure Last;
Признаком того, что достигнута последняя запись набора, является свойство:
property Eof: Boolean;
Которое в этом случае имеет значение True.
Аналогичную функцию для первой записи выполняет свойство:
property Bof: Boolean;
Перемещение вперед и назад на заданное число записей выполняет метод:
function MoveBy(Distance: Integer): Integer;
Параметр Distance определяет число записей. Если параметр отрицательный – перемещение осуществляется к началу набора данных, иначе – к концу.
Для ускоренного перемещения по набору данных можно отключить все связанные компоненты отображения данных. Это делается методом:
procedure DisableControls;
Обратная операция выполняется методом:
procedure EnableControls;
Общее число записей набора данных возвращает свойство:
property RecordCount: Integer;