Oracle Forms - Master - Подробные вопросы - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть форма, содержащая холст с вкладками.

На второй странице холста у меня есть два блока данных с отношением основных деталей.

Первый блок (главный) управляетсятаблица (table_one) со следующими полями:

sf_id (PK)
sf_code - VARCHAR2(40)
sf_desc - VARCHAR2(250)

Второй блок (деталь) - это повторяющийся блок, управляемый таблицей (table_two) со следующими полями:

error_code - VARCHAR2(40
error_code_desc - VARCHAR2(250)
is_major_error - VARCHAR2(1)
error_type - VARCHAR2(1)
error_is_active - VARCHAR2(1)
update_date - DATE
sf_id (FK - table_one.sf_id)

Второй блок показывает только error_code и error_code_desc.Смысл этой страницы холста - добавить / удалить основные записи и связать подробные записи с основным.Я никогда не хочу вставлять или удалять записи из таблицы два;просто обновив столбец sf_id в таблице 2.

Я пытаюсь добиться следующего:

  1. Создать основную запись с подробными записями одновременно.

  2. Удалить основную запись

  3. Добавить и удалить подробные записи

Вставка в подробный блокэто ничто иное, как связывание основной записи с подробной записью путем обновления столбца sf_id в таблице два.Удаление из подробного блока - не более чем установка нулевого столбца sf_id в таблице два.Я не добавляю и не удаляю записи в table_two.Имеет ли это смысл?

Я пытался переопределить коммит во втором блоке для выполнения обновлений вместо того, чтобы Oracle фактически пытался вставить НОВЫЕ записи в table_two.

1 Ответ

1 голос
/ 21 февраля 2012

Попробуйте переопределить триггер ON-INSERT для своего блока подробностей. Убедитесь, что это полное переопределение, а не срабатывание до или после срабатывания. Затем выполните обновление вместо процесса вставки по умолчанию.

...