Какая версия Forms это?
Если это 9i и более, вы можете использовать его опцию отладки и трассировки выполнения.Как включить это?Щелкните правой кнопкой мыши левое поле в опубликованном триггере и установите точку останова NEXT_BLOCK
.Запустите форму в режиме отладки (это зеленый значок светофор , расположенный рядом с тем, который вы используете для обычного запуска формы).Формы на этом остановятся и позволят вам действовать поэтапно (имеется в виду: команда за командой).Затем вы увидите, что происходит, какие триггеры выполняются, сколько времени затрачивается на определенные команды.
Если вы используете 6i, поместите вызовы MESSAGE
в триггеры, чтобы вы зналичто выполняется, в каком порядке.
По вашему вопросу: NEXT_BLOCK
само по себе может вызвать срабатывание определенных триггеров, таких как WHEN-VALIDATE-RECORD
(для записи в блоке "current"), PRE-BLOCK
(для блока "next"), WHEN-NEW-RECORD-INSTANCE
(для первой записи в блоке "next").EXECUTE_QUERY
вызовет срабатывание триггера POST-QUERY
(используется для заполнения элементов, не относящихся к базе данных), поэтому, если запрос возвращает много строк и срабатывает три раза, для каждого из них может потребоваться некоторое время для завершения.
Кроме того, попытайтесь ограничить количество возвращаемых строк;откройте палитру свойств блока, перейдите в раздел «Записи» и проверьте свойства и их значения (например, если для «Запросить все записи» установлено значение «Да», установите для него значение «Нет»).Для чего установлено «Количество записей в буфере»?Чтобы получить дополнительную информацию о каждом свойстве, нажмите на него и нажмите F1, чтобы открыть справочную систему Forms Online.
Проверьте предложение WHERE
блока, а также ORDER BY
.Если они несколько сложны, выборка может пострадать.