Средства разработки приложений

         

Такой подход многое упрощает. Настолько


Такой подход многое упрощает. Настолько многое, что это просто праздник какой-то!.. На уровне клиентской части сущности представляются, как классы с набором полей (полностью соответствующим полям в таблицах БД), методами очистки, чтения из БД и записи в БД. Хорошо бы ещё, чтобы классы как-то отслеживали межсущностные связи. Для каждой сущности генерируется её отображение на платформу разработки. Для серверной части - это генератор, триггеры и процедуры; для клиентской - класс, который умеет обращаться к соответствующим сгенерированным процедурам. Генераторы и триггеры обеспечивают работу автоинкрементных идентификаторов средствами InterBase/Firebird. Рассмотрим, например, сущность "Город". В скрипте "AutoGen.SQL" мы увидим строчки, создающие генератор для таблицы "CITY": create generator GEN_ID_CITY; set generator GEN_ID_CITY to 0; А в скрипте "AutoTrig.SQL" - триггер "BEF_ADD_CITY", срабатывающий при добавлении записи в эту таблицу, и автоматически задающий значение полю "ID_CITY". Генератор кода - это видно на скриншоте - позволяет задать тип каскадного воздействия для таблиц "Master-Detail" индивидуально для каждой сущности: при удалении записи в master-таблице все зависимые записи в detail-таблицах можно либо удалить, либо обNULLить в них ссылки на master-запись. Эта функциональность достигается генерацией соответствующих триггеров для каждой таблицы. При удалении города из справочной таблицы CITY триггер "BEF_DEL_CITY" обнуляет ссылки на город в таблице "ENTERPRISE".
А для сущности "Предприятие" (ENTERPRISE) метод каскадного воздействия был указан другой: в случае удаления предприятия будут удалены все данные, связанные с ним: документы, договора, контакты, представители, и т.д. (триггер "BEF_DEL_ENTERPRISE"). В скрипте "AutoProc.SQL" находятся сгенерированные процедуры чтения/записи для каждой сущности; в частности, для "Города" - это "GET_CITY" и "PUT_CITY".

Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий