524______________________________________________Глава 9

9.11 Программирование работы с базами данных

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

В рассмотренных ранее простых приложениях практически не требовалось
программирование. Все сводилось к размещению на форме компонентов и заданию
их свойств. Но более изощренные приложения все-таки требуют программирова-
ния и написания различных обработчиков событий.

Начнем рассмотрение вопросов программирования работы с базами данных с
основного свойства State компонента типа ТГаЫе, определяющего состояние набора
данных. Это свойство доступно только во время выполнения и только для чтения. На-
бор данных может находиться в одном из следующих состояний:

dslnactive    Набор данных закрыт, данные недоступны

dsBrowse     Данные могут наблюдаться, но не могут изменяться. Это состоя-
ние по умолчанию после открытия набора данных

dsEdit        Текущая запись может редактироваться
dslnsert      Может вставляться новая запись

dsSetKey     Доступен режим поиска записи и операция задания диапазона
изменений SetRange. Может наблюдаться только ограниченное
множество данных и не может проводиться редактирование или
вставка новой записи

dsCalcFields  Происходит обработка события OnCalcFields. He может прово-
диться редактирование невычисляемых полей или вставка но-
вой записи

dsFilter      Происходит обработка события OnFilterRecord. Может наблю-
даться только ограниченное множество данных и не может про-
водиться редактирование или вставка новой записи

dsNew Value  Внутреннее временное состояние, показывающее, что доступно
свойство NewValue поля TField

dsOldValue   Внутреннее временное состояние, показывающее, что доступно
свойство OldValue поля TField

dsCurValue   Внутреннее временное состояние, показывающее, что доступно
свойство CurValue поля TField

Три последних состояния чисто служебные и для пользователя интереса не
представляют. Они устанавливаются автоматически, когда приложение обращает-
ся к соответствующему свойству TField, и наблюдаться из приложения не могут.
Состояния dsCalcFields и dsFilter также устанавливаются автоматически при воз-
никновении событий OnCalcField и OnFilterRecord и наблюдаться из приложения
не могут. А остальные состояния могут устанавливаться в приложении во время
выполнения, но не непосредственно, а с использованием различных методов.

Метод Close закрывает соединение с базой данных, устанавливая свойство Ac-
tive набора данных в false. При этом State переводится в состояние dslnactive.

Метод Open открывает соединение с базой данных, устанавливая свойство Ac-
tive набора данных в true. При этом State переводится в состояние dsBrowse.

Метод Edit переводит набор данных в состояние dsEdit.