Используйте эту форму для указания столбцов, входящих в первичный ключ таблицы.
Рис 13. Первичный ключ
Столбцы не входящие в первичный ключ, Столбцы входящие в первичный ключ (Columns not in the primary key, Columns in the primary key)
Укажите столбцы, формирующие первичный ключ таблицы.
Название первичного ключа (Name of the Primary key)
LD-0301
Именуйте ограничения первичных ключей по следующему правилу: <код прикладной системы>_<псевдоним таблицы / представления>_PK
.
Пример
И_СТД_PK И - код прикладной системы СТД - псевдоним таблицы/представления PK - показывает, что это ограничение внешнего ключа
Изменяемый первичный ключ ? (Is the Primary key updatable ?)
LD-0308 Определите все столбцы первичного ключа как неизменяемые. Если один или более из столбцов первичного ключа должен допускать изменения, объявите этот ключ уникальным ключом, и создайте в таблице суррогатный первичный ключ, заполняемый последовательными кодами.
Рис 14. Первичный ключ (продолжение)
Уровень проверки (Validation Level)
LD-0303 Для первичных ключей таблицы установите это свойство на Обе стороны (Both), чтобы проверка производилась и на клиенте, и на сервере. Если вы по каким-то причинам отклоняетесь от этого стандарта, документируйте эту причину в поле Описание первичного ключа.
LD-0304 Для первичных ключей представления установите это свойство на Приложение (Application). Если вы по каким-то причинам отклоняетесь от этого стандарта, документируйте эту причину в поле Описание первичного ключа.
Обоснование
Если параметр Уровень проверки установлен на Обе стороны, то Forms Generator полагается на то, что ограничение будет проверено сервером при фиксации изменений. Forms Generator добавляет в триггер ON-ERROR
уровня блока код, который перехватит сообщение сервера
о нарушении ограничения и покажет соответствующее сообщение, зависящее от кода сообщения об ошибке. Перехват сообщения осуществляется при нахождении названия ограничения в сообщении о нарушении ограничения. В то же время, название ограничения первичного ключа представления может отличаться от названия ограничения первичного ключа исходной таблицы. Таким образом, Forms Generator не создаст код для перехвата сообщения об ошибке при попытке фиксации изменений. Чтобы предотвратить такое поведение формы, необходимо установить параметр Уровень проверки на Приложение или вручную изменить сгенерированный триггер ON-ERROR
.
Сообщение об ошибке (Error Message)
LD-0302 Не записывайте здесь текст сообщения об ошибке. Если вы пользуетесь поддержкой сообщений об ошибка при генерации форм, поместите в это поле код сообщения, ссылающийся на таблицу сообщений об ошибках. Это позволит вам гибко изменять текст сообщения об ошибке в случае необходимости.
По соображениям согласованности, используйте тот же формат кода сообщений об ошибках, который используется средствами Oracle: трехбуквенный код приложения, за которым идет пятизначное число (при необходимости используются ведущие нули).
Пример
OMS-00004
Генерация Для генерации полноценной системы поддержки сообщений об ошибках с использованием таблицы сообщений, вам необходимо действовать следующим образом:
- Создайте таблицу сообщений об ошибках.
- Создайте в библиотеке процедур процедуру поддержи сообщений, которая будет возвращать текст сообщения об ошибке из таблицы сообщений.
- Создайте "пустую" процедуру поддержки сообщений в форме-шаблоне. Эта процедура должна вызывать процедуру поддержки сообщений, созданную на предыдущем шаге. Установите параметр генератора
MSGFLP
на название этой "пустой" процедуры. Такая последовательность действий связана с тем, что Forms Generator ожидает, что процедура поддержки сообщений находится в форме-шаблоне, а не в библиотеке процедур. - Добавьте в таблицу исключений запись для каждого использованного кода сообщения об ошибке.
Таблица исключений (Exceptions Table)
Стандарты для заполнения этого поля не определены.
Текстовое описание первичного ключа
Используйте эту форму для дополнительного описания первичных ключей. В выпадающем списке можно выбрать соответствующий тип описания.
Рис 15. Текстовое описание первичного ключа
Описание (Description)
LD-0309 Для таблиц, опишите причины следующих отклонений от стандарта:
- Проверка ограничения только на клиенте, только на сервере, или нигде
- Отключение ограничения первичного ключа
- Возможность изменения первичного ключа
Примечания (Notes)
Стандарты на заполнение этого поля не определены.