Форма не удалось при вызове - PullRequest
0 голосов
/ 10 марта 2020

в oracle конструкторе форм моя форма не имеет доступа к триггеру с именем WNFI, я вызываю его при появлении экземпляра новой формы, подобного этому

execute_trigger('WNFI') ;

он вообще не вводит его. проблема?

1 Ответ

1 голос
/ 10 марта 2020

Какую версию форм вы используете?

Я только что попробовал его на формах 10g, и он работает нормально - триггер вызывается и выполняет свою работу (в моем тесте отображает сообщение).

В любом случае, на всякий случай, если вы не понял, что говорит AP C: переместите код из триггера WNFI в процедуру (не хранимую процедуру в базе данных; создайте ее в узле Программные единицы в Навигаторе объектов). Например:

-- This is P_WNFI procedure; this code was previously in WNFI trigger
message('wnfi');
message('wnfi');

Изменить WHEN-NEW-FORM-INSTANCE триггер:

-- instead of
--   execute_trigger('WNFI');
-- use
p_wnfi;

Если вы откроете справочную систему Forms и выполните поиск по execute_trigger, вы увидите заметку:

EXECUTE_TRIGGER не является предпочтительным методом для выполнения триггера с именем пользователя. Написание пользовательской подпрограммы является предпочтительным методом.

На вашем месте я бы поступил так, как сказал. execute_trigger может быть здесь для обратной совместимости в течение некоторого времени, но не forever . Кто знает; возможно Oracle корп. делает.

...