FRM-40501 в оракуле - PullRequest
3 голосов
/ 19 марта 2019

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

select empno,ename,job,mgr,hiredate,sal,comm,deptno,grade gr 
  from emp 
  left outer join salgrade on ( emp.sal between losal and hisal)

Я также изменяю свойства, чтобы быть видимым и не видимым, как этот код

if   get_item_property('text_item17', visible) = 'TRUE' then
     set_item_property('text_item17', visible, property_false);  
else
     set_item_property('text_item17', visible, property_true);
     set_item_property('text_item17',enabled,property_true);
     set_item_property('text_item17',enabled,property_true);
     set_item_property('text_item17',NAVIGABLE ,property_true);
     set_item_property('text_item17',UPDATE_ALLOWED,property_true);
     set_item_property('text_item17',QUERYABLE,property_true);
     set_item_property('text_item17',UPDATE_NULL,property_true);
end if;

когда я запускаю форму, я получаю сообщение об ошибке, что не могу обновить данные

Ответы [ 2 ]

2 голосов
/ 19 марта 2019

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

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

SET_ITEM_PROPERTY звонки, которые вы отправили, не имеют к этому никакого отношения (т. Е. Не решат вашу проблему).

[EDIT]

Сказав, что вы хотите решить эту проблему без представления , я бы посоветовал вам не тратить на это слишком много времени. Если вы откроете интерактивную справку по формам и выполните поиск «Рекомендации по выбору блочных источников данных», вы увидите, что предложение FROM в качестве источника данных разрешает запрос, но НЕ разрешает DML (вставляет, обновляет и удаляет).

0 голосов
/ 19 марта 2019

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

...