ОБЗОР СОБЫТИЙ КОМПОНЕНТА TQuery

Все запросы – точнее их НД, получают в свое распоряжение большое количество событий, унаследованных ими от родительского класса TBDEDataSet. Это те же события, что и для НД на основе таблиц.

Рисунок 4.14 – Состав событий набора данных TQuery

К наиболее важным событиям относятся события, связанные с реализацией каскадных изменений и бизнес-правил, а также ряд других событий.

Для реализации каскадных изменений и бизнес-правил в локальных или файл-серверных БД обычно используются обработчики событий AfterXXXX и BefогеХХХХ.

Примечание. Для клиент-серверных БД каскадные изменения и бизнес-правила реализуются средсвами самой БД, а именно триггерами. Они программируются администраторами БД, а не разработчиками программных приложений. Однако их суть для всех типов БД одна и та же.

Каскадные изменения и бизнес-правила связаны с изменениями НД (вставка, удаление или редактирование записи) и отличаются тем, что события BefогеХХХХ наступают непосредственно перед изменением НД, а события AfterXXXX - сразу после изменения.

Обработчики этих событий в качестве параметра получают ссылку на запрос и его НД, вызвавший соответствующее событие. Если необходимо прервать работу обработчика и предотвратить изменение таблиц БД, нужно возбудить исключение или вызвать процедуру Abort.

Безусловным достоинством реализации каскадных изменений и бизнес-правил именно в обработчиках этих событий является концентрация их в одном месте - модуле данных, (если, разумеется, все компоненты-наборы сосредоточены в едином модуле данных), что облегчает программисту их отслеживание и внесение в них необходимых изменений.

К другим событиям можно отнести события:

ü OnCalcFields, которое возникаетв момент, когда программа должна сформировать значения для вычисляемых полей;

ü OnNewRecord, которое возникает при вставке новой записи.