у меня есть две таблицы с внешним ключом, и я хочу нажать на внешний ключ в первой таблице, а во второй таблице появляются данные - PullRequest
0 голосов
/ 08 января 2020

У меня есть два блока. Первый - мастер, второй - ручной в Oracle формах 11g с реляционными.

Я выполняю данные в первом блоке и хочу нажать на внешнюю клавишу в первой таблице, и во второй таблице появятся данные, которые связаны между собой одним и тем же числовым внешним ключом?

Какой триггер должен Пользуюсь пожалуйста? И какой код я должен поставить в триггер?

enter image description here

Ответы [ 2 ]

1 голос
/ 08 января 2020

Вы можете использовать WHEN-NEW-RECORD-INSTANCE триггер на уровне блока Block1 с кодом:

declare
 v_skulist  table1.skulist%type;
begin
 v_skulist := :Block1.f_skulist; --> represents left uppermost field
 go_block('Block2');
 execute_query;
 go_block('Block1'); --> go back to the upper block again, if don't want to come back, then starting from this line upto `end;`(exclusive) should be removed.
 while v_skulist != :Block1.f_skulist
 loop
  next_record;
 end loop;
end;

, где

  • Query Data Source Name свойство установлено на table1 для Block1

    и

  • Query Data Source Name свойство установлено на myuser1.table2 с WHERE Clause на

    skulist = :Block1.skulist для Block2 при условии, что вторая таблица принадлежит другому пользователю как минимум

    с предоставленной select привилегией для текущего пользователя, как указано в вашем комментарии.

Это Кстати, какая бы запись ни касалась в первом блоке, столбец внешнего ключа аналога заносится во второй блок.

0 голосов
/ 08 января 2020

Вы должны были использовать мастер блоков данных , который создает все необходимые триггеры и процедуры, которые позаботятся об этом.

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

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

Затем вы можете просмотреть, какие объекты формы созданы для вас и - если вы действительно ДЕЙСТВИТЕЛЬНО хотите сделайте это вручную, попробуйте mimi c его шаги.

...