Пример описания словаря Назад В начало Вперед
/*
Staff (с) 1995, АО "Новый Атлант", НТО "Top Soft" 
  Назначение: 
	 База  данных	 "Проекты организации". 
	 Назначение :	 Демонстрации основных возможностей 
						СУБД   Атлантис. 
	 БД   включает   все поддерживаемые  типы  данных: 
	 char,  string,   word,   integer, longint, single, 
	 double, date, time, lvar. 
	 Иллюстрируется возможность применения различных 
	 атрибутов  ключей: Unique, AutoInc, Upcase, Seg, Null, 
						Surragate, Journal 
*/
$G+ // Осуществлять генерацию словарей БД
create dictionary StafBase "Проекты_организации" using "DICT"; 
directory for pascal "pas"; // Куда будут складываться
		// сгенерированные Паскаль-заготовки
set type
 (
	tNREC = comp		// Тип описания номера записи таблицы
 ); 
create table ExClass "Классификация затрат"
 using "%DATA%DATA\ExClass" with replace
 (
	NREC : tNREC "Номер записи", // Одна запись - один класси-
										// фикатор
	classCode : string[20] "Классификационный код",
	className : string[40] "Наименование классификатора"
 )
 with index
 (
	ExClass0 = NREC (Unique, Surrogate, Journal),
	ExClass1 = ClassCode
 ); 
create table Postes "Должности" using "%DATA%DATA\Postes" with replace
 (
	NREC : tNREC "Номер записи",// Одна запись - одна должность
	name : string[40] "Должность",
	minSalary : double "Минимальный оклад",
	maxSalary : double "Максимальный оклад"
 )
 with index
 (
	Postes0 = NREC (unique, surrogate, journal),
	Postes1 = name (upcase,length = 10),
	Postes2 = minSalary (Desc) + maxSalary
 );
create table Departments "Отделы" using
	"%DATA%DATA\departs" with replace
 (
	NREC : tNREC "Номер записи", // Одна запись - один отдел
	num : string[16] "Номер отдела",
	name : string[70] "Название отдела",
	chief : tNREC "Руководитель"		// = Employee.NREC
 )
 with index
 (
	Departments0 = NREC (unique, surrogate, journal),
	Departments1 = name (upcase,length = 10)
 ); 
create table Employee "Сотрудники" using "%DATA%DATA\employee" with replace
 (
	NREC : tNREC "Номер записи", // Одна запись - один	сотрудник
	name : string[50] "Фамилия И.О.",
	postesNREC : tNREC "Должность",
	departmentNREC : tNREC "Отдел",
	formulaNREC : tNREC "Формула вычисления премии",
	status : string[1] "Признак совместителя",
		 // П-постоянный, С-совместитель
	acceptDate : date "Дата приема на работу",
		// Только для постоянных сотрудников.
	salary : double "Зарплата",
	premium : double "Премия"
 )
 with index
 (
	Employee0 = NREC (unique, surrogate, journal),
	Employee1 = name (upcase),
	Employee2 = postesNREC + departmentNREC,
	Employee3 = formulaNREC
 ); 
create table Projects "Проекты" using "%DATA%DATA\projects" with replace
 (
	NREC : tNREC "Номер записи", // Одна запись - один проект
	name : string[50] "Название",
	status : string[1] "Статус" null= "З",
		// Т - текущий З - завершенный
	comment : lvar "Описание проекта"
 )
 with index
 (
	Projects0 = NREC (unique, surrogate, journal),
	Projects1 = name (upcase, length = 10 ),
	Projects3 = status
 );
create table Stages "Этапы" using "%DATA%DATA\stages" with replace
 (
	NREC : tNREC "Номер записи", // Одна запись - один этап
	projectsNREC : tNREC "Проект", // одного проекта
	num : word "Номер этапа",
	name : string[50] "Наименование",
	begDate : date "Дата начала",
	endDate : date "Дата окончания",
	comment : lvar "Описание этапа"
 )
 with index
 (
	Stages0 = NREC (unique, surrogate, journal),
	Stages1 = num + name (upcase),
	Stages2 = begDate,
	Stages3 = endDate,
	Stages4 = projectsNREC
 );
create table Expens "Расходы" using "%DATA%DATA\expens" with replace
 (
	NREC : tNREC "Номер записи", // Одна запись - расходы по
	projectsNREC : tNREC "Проект", // по одному проекту
	stagesNREC : tNREC "Этап", // за один этап.
	exClassNREC : tNREC "Классификатор затрат",
	exDate : date "Дата",
	summ : double "Сумма"
 )
 with index
 (
	Expens0 = exDate,
	Expens1 = projectsNREC + stagesNREC,
	Expens2 = exClassNREC
 );
create table EmpProj "Сотрудники-Проекты" using "%DATA%DATA\empproj"
 with replace
 (
	employeeNREC : tNREC "Сотрудник",
	projectsNREC : tNREC "Проект"
 )
 with index
 (
	EmpProj0 = employeeNREC + projectsNREC,
	EmpProj1 = projectsNREC + employeeNREC
 );
create table Formulae "Формулы" using "%DATA%DATA\formulae"
 with replace
 (
	NREC : tNREC "Номер записи",
	name : string[40] "Имя формулы",
	formula : string[255] "Формула"
 )
 with index
 (
	Formulae0 = NREC (unique, surrogate, journal),
	Formulae1 = name (upcase)
 );
create pascal; // Генерировать Паскаль-заготовки