По паре методов-обработчиков (до и после события) предусмотрено для следующих событий в наборе данных:
О открытие и закрытие набора данных;
• переход в режим редактирования;
О переход в режим вставки новой записи;
О сохранение сделанных изменений;
О отмена сделанных изменений;
О перемещение по записям набора данных;
О обновление набора данных.
Обратите внимание, что помимо методов-обработчиков режима вставки существует дополнительный метод
property OnNewRecord: TDataSetNotifyEvent;
который вызывается непосредственно при вставке или добавлении записи.
Дополнительно к этому могут использоваться методы-обработчики возникающих ошибок. Они предусмотрены для ошибок удаления, редактирования и сохранения изменений.
Метод-обработчик
property CoCalcFields: TtetaSetKfotifyEvent;
очень важен для задания значений вычисляемых полей. Он вызывается для каждой записи, которая отображается в визуальных компонентах, связанных с набором данных каждый раз, когда необходимо перерисовать значения полей в визуальных компонентах.
Если в методе-обработчике OnCalcFields производятся слишком сложные вычисления, частота его вызовов может быть уменьшена за счет свойства
property AutcCalcFields: Boolean;
По умолчанию оно равно значению True и расчет вычисляемых полей производится при каждой перерисовке. При значении False метод-обработчик OnCalcFields вызывается только при открытии, переходе в состояние редактирования и обновлении набора данных.
Все перечисленные выше обработчики имеют одинаковый тип
type TEataSetNotifyEvent = procedure (DataSet: TDataSet) of object; И метод-обработчик
type TFilterRecordEvent = procedure(DataSet: TDataSet;
var Accept: Boolean) of object;
property CnFilterRecord: TFilterRecordEvent;
вызывается для каждой записи набора данных при свойстве Filtered = True. (Подробнее об этих свойствах и методе-обработчике см. гл. 14.)
Помимо перечисленных, класс TDataSet содержит еще много свойств и методов, которые обеспечивают работоспособность многих полезных в практическом программировании приложений баз данных функций. Подробно они рассмотрены в гл. 14.
Стандартные компоненты
Внимательный читатель заметил, что на рис. 12.1 набор компонентов для каждой из представленных технологий доступа к данным примерно одинаков. Везде есть компонент, инкапсулирующий табличные функции, компонент запроса SQL и компонент хранимой процедуры. И хотя все они имеют разных ближайших предков, тем не менее, функциональность подобных компонентов в различных технологиях почти одинакова.
Поэтому имеет смысл рассмотреть общие для компонентов свойства и методы, представив, что существуют некие виртуальные общие предки для таблицы, запроса и хранимой процедуры.
(_Примечание_)
Некоторые из описываемых ниже свойств и методов присутствуют не в каждой реализации компонентов.
Компонент таблицы
Компонент таблицы обеспечивает доступ к таблице базы данных целиком, создавая набор данных, структура полей которого полностью повторяет таблицу БД. За счет этого компонент прост в настройке и обладает многими дополнительными функциями, которые обеспечивают применение табличных индексов.