Состояния набора данных
В процессе своего функционирования (от открытия методом 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 | Включается механизм поиска по ключу. Также могут использоваться диапазоны |