Директивы паскаль-образа |
Директивы паскаль-образа используются для генерации паскаль-образа словаря БД или отдельной таблицы словаря.
Паскаль-образ представляет собой отдельный юнит, содержащий описания ряда глобальных типов и констант, необходимых для обращения к словарям и таблицам словаря.
Не типизированные константы с префиксом co являются кодами таблиц. По этим кодам осуществляется однозначное обращение к соответствующим таблицам.
Не типизированные константы с префиксом ti являются кодами индексов. По этим кодам осуществляется однозначное обращение к соответствующим индексам. На каждую из таблиц заводится ровно столько констант, сколько индексов было описано.
Структуры типа запись соответствуют таблицам, описанным в словаре. При этом поддерживается полное соответствие между полями таблицы и полями соответствующей ей записи.
<директивы-паскаль-образа> = <set-directory> | <create-pascal>
<set-directory> - дает возможность установить каталог, в котором будет создан паскаль-образ:
<set-directory> = [set] directory for pascal <каталог>;
<каталог> - строка в кавычках.
<create-pascal> - директива на построение паскаль-образа.
Возможно как построение паскаль-образа всего словаря БД, так и отдельных таблиц словаря.
Для создания паскаль-образа всего словаря реализуется предложение create pascal. Имя паскаль-образа не задается. Оператор создает паскаль-заготовку для всех таблиц, за исключением таблиц, для которых были созданы паскаль-заготовки предложениями create pascal for, описанными раньше create pascal.
Для создания паскаль-образа отдельных таблиц словаря необходимо после конструкции create pascal указать имя паскаль-образа, а затем после ключевого слова for список нужных Вам таблиц. Имя паскаль-образа и список таблиц являются обязательными атрибутами конструкции. Оператор создает паскаль-заготовку, не проверяя, были ли созданы паскаль-заготовки для описанных таблиц ранее.
<create-pascal> = create pascal [<имя-паскаль-образа> for <список-таблиц>];
<имя-паскаль-образа> - имя файла для паскаль-образа. При создании этого файла всегда принимается расширение .pas независимого от заданного расширения.
<список-таблиц> - в списке таблиц перечисляются все таблицы, для которых создается паскаль-заготовка. Таблицы перечисляются через запятую.
При неверном имени таблицы выдается предупреждающее сообщение, но процесс компиляции не прерывается.
<список-таблиц> = <имя-таблицы> { , <имя-таблицы> }
Начиная с Атлантис 5.3.05 директивы создания паскаль-образов можно использовать внутри интерфейса.
При использовании <set-directory> внутри описания интерфейса запоминается предыдущее значение этой директивы. После окончании описания интерфейса "внешнее" значение восстанавливается.
При объявлении таблиц внутри интерфейса к ним возможно применить <create-pascal> внутри этого же интерфейса, т.к. за пределами интерфейса эти таблицы, естественно, видны не будут.
set directory for pascal "Output"; //директория = Output //************************************************************ interface Example 'Test' escClose; //------------------------------------------------------------ create view as select * from x$files ; //------------------------------------------------------------ table struct TPPatchesList ( NRec : Comp "Идентификатор", cParent : Comp "Ссылка на родителя", Name : String[80] "Имя системы, патча" ); set directory for pascal "Incviplo"; //директория = Incviplo create pascal "TPMailer.inc" for TPPatchesList; .... end. //директория снова Output
Начиная с Атлантис 5.3.05 директивы создания паскаль-образов можно использовать внутри интерфейса.