На втором этапе разработки приложения баз данных необходимо перенести на форму и настроить компонент TDataSource. Он обеспечивает взаимодействие набора данных с компонентами отображения данных. Чаще всего одному набору данных соответствует один компонент TDataSource, хотя их может быть несколько.
Для настройки свойств компонента необходимо выполнить следующие действия.
1. Связать набор данных и компонент TDataSource.
Для этого используется свойство DataSet компонента
TDataSource, доступное через Инспектор объектов. Это указатель на экземпляр компонента доступа к данным. В списке этого свойства в Инспекторе объектов перечислены все доступные компоненты наборов данных.
2. Переименовать компонент. Это не обязательное действие. Тем не менее желательно присваивать компонентам осмысленные имена, соответствующие названиям связанных наборов данных. Обычно название компонента комбинирует имя набора данных (например 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).