Настройка компонента TDataSource
На втором этапе разработки приложения баз данных необходимо перенести на форму и настроить компонент TDataSource. Он обеспечивает взаимодействие набора данных с компонентами отображения данных. Чаще всего одному набору данных соответствует один компонент TDataSource, хотя их может быть несколько.
Для настройки свойств компонента необходимо выполнить следующие действия.
- Связать набор данных и компонент TDataSource. Для этого используется свойство DataSet компонента TDataSource, доступное через Инспектор объектов. Это указатель на экземпляр компонента доступа к данным. В списке этого свойства в Инспекторе объектов перечислены все доступные компоненты наборов данных.
- Переименовать компонент. Это не обязательное действие. Тем не менее желательно присваивать компонентам осмысленные имена, соответствующие названиям связанных наборов данных. Обычно название компонента комбинирует имя набора данных (например OrdSource или dsOrders).
В приложении DemoDBApp компонент countrysource связан с компонентом CountryTable. Поэтому свойство DataSet имеет значение CountryTable.
Примечание
Компонент TDataSource можно подключить не только к набору данных из той же формы, но и любой другой, модуль которой указан в секции uses.
Компонент TDataSource имеет ряд полезных свойств и методов. Итак, связывание с компонентом набора данных выполняет свойство:
property DataSet: TDataSet;
А определить текущее состояние набора данных можно, использовав свойство:
type TDataSetState = (dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc); property State: TDataSetState;
При помощи свойства:
property Enabled: Boolean;
Можно включить или отключить все связанные визуальные компоненты. При значении False ни один связанный компонент отображения данных не будет работать.
Свойство:
property AutoEdit: Boolean;
При значении True всегда будет переводить набор данных в режим редактирования при получении фокуса одним из связанных визуальных компонентов.
Аналогично, метод:
procedure Edit;
Переводит связанный набор данных в режим редактирования.
Метод:
function IsLinkedTo(DataSet: TDataSet): Boolean;
Возвращает значение True, если компонент, указанный в параметре DataSet, действительно связан с данным компонентом TDataSource.
Метод-обработчик:
type TDataChangeEvent = procedure(Sender: TObject; Field: TField) of object; property OnDataChange: TDataChangeEvent;
Вызывается при редактировании данных в одном из связанных визуальных компонентов.
Метод-обработчик:
property OnUpdateData: TNotifyEvent;
Вызывается перед сохранением изменений в базе данных. Метод-обработчик:
property OnStateChange: TNotifyEvent;
Вызывается при изменении состояния связанного набора данных (см. гл. 12).