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

Состояния набора данных

В процессе своего функционирования (от открытия методом Open и до закрытия методом close) набор данных может выполнять самые разнообразные операции. Можно просто перемещаться по записям, можно редактировать данные и удалять записи, можно проводить поиск по различным параметрам и т. д. При этом желательно, чтобы все операции выполнялись как можно быстрее и эффективнее.

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

Все состояния набора данных делятся на две группы.

  • К первой группе относятся состояния, в которые набор данных переходит автоматически, а также непродолжительные по времени состояния, сопровождающие функционирование полей набора данных (табл. 12.1).
  • Во вторую группу входят состояния, которыми можно управлять из приложения, например, перевод набора данных в режим редактирования (табл. 12.2).

Базовый класс TDataSet, инкапсулирующий свойства набора данных, позволяет изменять состояние, а также проверять текущее состояние набора данных.

Текущее состояние набора данных передается в свойство state, имеющее тип TDataSetState:

type TDataSetState = (dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields,
dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc);

Для управления состояниями набора данных используются методы open, Close, Edit, Insert.

Таблица 12.1. Автоматические состояния набора данных.

Константа состояния Описание
dsNewValue Включается при обращении к свойству NewValue поля набора данных
dsOldValue Включается при обращении к свойству OldValue поля набора данных
dsCurValue Включается при обращении к свойству CurValue поля набора данных
dsInternalCalc Включается при расчете значений полей, для которых FindKind = fklnternalCalc
dsCalcFields Включается при выполнении метода onCalcFields
dsBlockRead Включается механизм ускоренного перемещения по набору данных
dsOpening Существует при открытии набора данных методом Open или свойством Active
dsFilter Включается при выполнении метода OnFilterRecord

Таблица 12.2. Управляемые состояния набора данных.

Константа состояния Метод Описание
dslnactive Close Набор данных закрыт
dsBrowse Open Данные доступны для просмотра, но недоступны для редактирования
dsEdit Edit Данные можно редактировать
dslnsert Insert К набору данных можно добавлять новые записи
dsSetKey SetKey Включается механизм поиска по ключу. Также могут использоваться диапазоны
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.