Корпоративные базы данных - статьи




Глава 4.1. Личные библиотеки модулей программы.



В VantageTeam Builder поддерживаются библиотечные модули для реализации и вызова базовых SQL-
функций доступа к таблицам базы данных. Разработчик может пользоваться этим инструментом для
создания собственных, личных (или проектных) библиотек модулей. Каждый такой модуль является
атомарным (детально не раскрываемым) элементом структурной схемы программы. Они
предназначены для выполнения двух задач.

Первая, это создание библиотеки стандартных (непараметризуемых) фрагментов текста, например:


INPUT BY NAME p_record.*
--начало библиотечного модуля
ON KEY (ESC)
LET INT_FLAG = true
EXIT INPUT
--конец библиотечного модуля
Вторая - это создание библиотеки шаблонов, используемых для генерации параметризуемых
фрагментов текста, например (имя таблицы и имена полей определяются в данном примере
параметрически):

--начало библиотечного модуля
INPUT BY NAME p_{имя таблицы}.*
ON KEY (ESC)
LET inf_flag = true
EXIT INPUT
ON KEY(CONTROL-U)
--для всех импортированных полей
IF INFIELD({имя поля}) THEN
CALL find_{имя таблицы}(p_{имя таблицы}.{имя поля})
RETURNING p_{имя таблицы}.*
END IF
END INPUT
--конец библиотечного модуля
Соответственно дизайнер может использовать один и тот же библиотечный модуль на различных
схемах, а программист один раз пишет необходимый код или шаблон. Шаблоны представляют собой
текст программы, содержащий вызовы специальных функций, написанных на языке Tool Command
Language (TCL), и обеспечивающих чтение информации из формируемых с помощью VantageTeam
Builder моделей (диаграмм) и запись сформированного текста в соответствующие разделы
генеримого файла с кодом программы или SQL-скрипта. Например, шаблон для приведенного
выше примера выглядит следующим образом:

--начало шаблона
INPUT BY NAME p_~${current_table}.*
ON KEY (ESC)
LET inf_flag = true
EXIT INPUT
ON KEY(CONTROL-U)
~[ foreach col [gen_col_list $current_table "FKEY"] {
set master_table [get_master $col]
set col_name [get_uniq_name $col]
expand_text $current_section {



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