Директивы паскаль-образа Назад В начало Вперед

Директивы паскаль-образа используются для генерации паскаль-образа словаря БД или отдельной таблицы словаря.

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

Не типизированные константы с префиксом 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 директивы создания паскаль-образов можно использовать внутри интерфейса.