Все запросы – точнее их НД, получают в свое распоряжение большое количество событий, унаследованных ими от родительского класса TBDEDataSet. Это те же события, что и для НД на основе таблиц.
Рисунок 4.14 – Состав событий набора данных TQuery
К наиболее важным событиям относятся события, связанные с реализацией каскадных изменений и бизнес-правил, а также ряд других событий.
Для реализации каскадных изменений и бизнес-правил в локальных или файл-серверных БД обычно используются обработчики событий AfterXXXX и BefогеХХХХ.
Примечание. Для клиент-серверных БД каскадные изменения и бизнес-правила реализуются средсвами самой БД, а именно триггерами. Они программируются администраторами БД, а не разработчиками программных приложений. Однако их суть для всех типов БД одна и та же.
Каскадные изменения и бизнес-правила связаны с изменениями НД (вставка, удаление или редактирование записи) и отличаются тем, что события BefогеХХХХ наступают непосредственно перед изменением НД, а события AfterXXXX - сразу после изменения.
Обработчики этих событий в качестве параметра получают ссылку на запрос и его НД, вызвавший соответствующее событие. Если необходимо прервать работу обработчика и предотвратить изменение таблиц БД, нужно возбудить исключение или вызвать процедуру Abort.
Безусловным достоинством реализации каскадных изменений и бизнес-правил именно в обработчиках этих событий является концентрация их в одном месте - модуле данных, (если, разумеется, все компоненты-наборы сосредоточены в едином модуле данных), что облегчает программисту их отслеживание и внесение в них необходимых изменений.
К другим событиям можно отнести события:
ü OnCalcFields, которое возникаетв момент, когда программа должна сформировать значения для вычисляемых полей;
ü OnNewRecord, которое возникает при вставке новой записи.