Как я могу запретить вставку основной детали без детализации в Oracle Forms - PullRequest
1 голос
/ 06 октября 2011

Я пытаюсь создать блок, который представляет ордер, и этот блок имеет отношение master-detail с блоком order_itens. Мне нужно запретить сохранение этой структуры данных, если у меня нет записей в order_itens.

1 Ответ

1 голос
/ 06 октября 2011

Одним из способов является использование триггера POST-FORMS-COMMIT. Это срабатывает после того, как все данные были вставлены, обновлены или удалены, но до фиксации базы данных. Таким образом, вы можете сделать что-то вроде:

declare
  l_count integer;
begin
  select count(*)
  into l_count
  from detail
  where master_id = :master.master_id
  and rownum = 1;

  if l_count = 0 then
    message ('Must have details');
    raise_application_error;
  end if;
end;
...