CREATE_LINK


Библиотека

V32.EXE

Синтаксис

CREATE_LINK(TableName: IDENT;
            IndexName: IDENT;
            LinkName: IDENT;
            CooTableName: IDENT;
            CooIndexName: IDENT;
            OwnAttr: OWNATTR_IDENT;
            [ Description: STRING[] ];
            [ Comment: STRING[] ] );
OWNATTR_IDENT = USER | BORROW | HISTORY

Описание

Процедура объявляет справочную связь LinkName для таблицы TableName на основе ее индекса IndexName с таблицей CooTableName по индексу CooIndexName. Таблицы и индексы должны быть уже объявлены процедурами CREATE_TABLE и CREATE_INDEX. Параметр OwnAttr уточняет тип справочной связи:

Параметры Description и Comment задают соответственно описание и комментарий для связи.

Длиной связи считается длина индекса CooIndexName. Имена и типы полей индексов IndexName и CooIndexName должны строго совпадать на длину связи. Имена индексов должны совпадать. Индекс CooIndexName должен быть уникальным, а индекс IndexName должен быть либо более длинным, чем CooIndexName, либо неуникальным. При несоблюдении перечисленных требований будет выброшено то или иное исключение.

До версии 14.136.020 процедура называлась CreateLINK. В настоящее время допустимы оба варианта имени.

Исключительные ситуации

Связь с таким именем в таблице уже существует Исключение 105
CooIndexName есть неуникальный индекс в таблице CooTableName Исключение 102
Индекс OwnIndex короче чем индекс CooIndexName Исключение 101
Имена индексов не совпадают Исключение 106
Имена полей связи не совпадают Исключение 99
Типы полей связи не совпадают Исключение 100
Таблица TableName уже объявлена BORROW-таблицей и не может быть объявлен BORROW-таблицей к CooTableName Исключение 197
Создание данной связи порождает цикл в структуре БД, в котором каждая таблица ссылается на другую ссылкой типа много-в-один (начиная с V14.47.1) Исключение 395

См. также