Об ограничительном создании записей в дочерней таблице. (Создатель форм Oracle)

Я создал форму, в которой я добавляю записи в дочернюю таблицу. Однако я не хочу, чтобы люди могли редактировать вторичный ключ, а только выбирать его из списка первичных ключей родителя или что-то в этом роде. Как я мог это сделать?

Столы:

CREATE TABLE CHAMPIONS (CNAME VARCHAR2(15) NOT NULL, PRICELEVEL NUMBER(1) NOT NULL, ROLE VARCHAR2(10) NOT NULL, HPLEVEL NUMBER(2) NOT NULL, ATKLEVEL NUMBER(2) NOT NULL, MAGICLEVEL NUMBER(2) NOT NULL, DIFFLEVEL NUMBER(2) NOT NULL); 

CREATE TABLE SKINS (SNAME VARCHAR2(20) NOT NULL, CNAME VARCHAR2(15) NOT NULL, PRICELEVEL NUMBER(1) NOT NULL); 

ALTER TABLE Champions ADD CONSTRAINT pk_Champions PRIMARY KEY (CNAME);

ALTER TABLE Skins ADD CONSTRAINT fk_Skins FOREIGN KEY (CNAME) REFERENCES champions(CNAME);

person Donatas BartkenasLast Name    schedule 30.11.2012    source источник


Ответы (2)


Слишком мало информации, чтобы дать ответ, но я могу попробовать.

Вы можете создать LOV в таблице сведений и удалить этот LOV из первичного ключа родительских таблиц, а также текстовый элемент, с которым вы будете связывать LOV, вам нужно поместить триггер WHEN-VALIDATE-ITEM с тем же запросом, что и в LOVs RECORD GROUP так что в случае, если пользователь вводит вместо использования LOV, вы можете проверить ввод, а затем предупредить их в случае недопустимого ввода и получить правильный главный первичный ключ в случае ввода правильного значения.

Ниже показано, как выглядит блок данных с кнопками LOV:

введите здесь описание изображения

А ниже триггер по элементу STORE в блоке данных-

введите здесь описание изображения

Вы можете кодировать RG так же, как запрос в триггере, учитывая вашу главную таблицу в запросе.

person AnBisw    schedule 30.11.2012
comment
Я проверю это, когда смогу, но я могу дать вам всю необходимую информацию. Обновлен вопрос с дополнительной информацией. Скажи мне, если тебе нужно больше. - person Donatas BartkenasLast Name; 01.12.2012

Самый простой способ получить эту функциональность — создать список значений на основе Champions.cname и прикрепить его к столбцу формы элемента skins.cname (пожалуйста, обратитесь к справке по формам, если вы не знакомы с созданием LOV:s). Затем установите для свойства элемента «Проверить из списка» элемента skins.cname значение «Да». Это проверит все введенные значения по сравнению с существующими значениями cname.

person Peter Å    schedule 03.12.2012