Гость
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / FORMS 6i вставка строки / 5 сообщений из 5, страница 1 из 1
06.12.2012, 14:38
    #38068026
Ирина В.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FORMS 6i вставка строки
Здравствуйте!
Подскажите, пожалуйста, что почитать или сделать!
На форме 2 связанных блока.
1) Когда вставляешь в деталь новую строку, она сначала делает update на неё, а потом только insert. Соответственно, после update значения check box и родительского id слетают в null и выходит ошибка от insert'а. Почему forms так реагирует? Может какое-то описание блока не то? Сколько до этого форм ни делала, все было замечательно, а тут бьюсь об стену( и ничего толкового не могу найти
Процедуры update'а и insert'а на форме (самые обыкновенные):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
PROCEDURE on_insert
   IS
   v_null NUMBER := NULL;
   BEGIN   	  
   	  if (:SYSTEM.CURSOR_BLOCK = 'GLOSSARY_GR') then 
      	p_GLOSSARY.ins (
   			 		v_null
   			 	 ,v_null
   			 	 ,:GLOSSARY_GR.title
   			 	 ,:GLOSSARY_GR.is_can_edit
   			 	 ,:GLOSSARY_GR.comments
                  );
   		else 
      	p_GLOSSARY.ins (
   			 		v_null
   			 	 ,:GLOSSARY_GR.id
   			 	 ,:GLOSSARY_VAL.title
   			 	 ,:GLOSSARY_VAL.is_can_edit
   			 	 ,:GLOSSARY_VAL.comments
                  );
   		end if;
   END on_insert; 
 PROCEDURE on_update
   IS
   BEGIN   	 
      if (:SYSTEM.CURSOR_BLOCK = 'GLOSSARY_GR') then 
      	p_GLOSSARY.upd (
   			 		:GLOSSARY_GR.id
   			 	 ,:GLOSSARY_GR.parent_id
   			 	 ,:GLOSSARY_GR.title
   			 	 ,:GLOSSARY_GR.is_can_edit
   			 	 ,:GLOSSARY_GR.comments
                  );
   		else 
      	p_GLOSSARY.upd (
   			 		:GLOSSARY_VAL.id
   			 	 ,:GLOSSARY_VAL.parent_id
   			 	 ,:GLOSSARY_VAL.title
   			 	 ,:GLOSSARY_VAL.is_can_edit
   			 	 ,:GLOSSARY_VAL.comments
                  );
   	end if;
   END on_update;


2) Именно в этой форме даже если ничего не изменял при закрытии формы она предлагает сохранить изменения! Как вообще с таким бороться?
...
Рейтинг: 0 / 0
06.12.2012, 20:30
    #38068684
OldBoyOdeSu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FORMS 6i вставка строки
Ирина В.,

хм... что то непонятно совсем, блоки бывают базовые (основаны на таблице или процедуре, имеют триггеры на уровне блока QUERY PROCEDURE, INSERT UPDATE DELETE (смотря какие задать)) и тогда по commit_form они вызываются
не базовые там самому надо всё реализовывать, но и формс не следит за ними, тогда странно
Ирина В.если ничего не изменял при закрытии формы она предлагает сохранить изменения!

на сколько могу судить вам надо сделать базовые блоки основанные на процедуре из БД
12038929
...
Рейтинг: 0 / 0
07.12.2012, 05:26
    #38068905
Ирина В.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FORMS 6i вставка строки
OldBoyOdeSu,
Уточняю: блок основан на таблице (не на view), на блок повешены триггеры on_update, on_insert, on_lock, on_delete. Эти триггеры вызывают процедуры из БД (p_GLOSSARY - это пакет на БД).
...
Рейтинг: 0 / 0
07.12.2012, 11:38
    #38069241
bev
bev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FORMS 6i вставка строки
Есть ли на этом блоке триггер POST-QUERY, в котором изменяются какие-либо базовые итемы блока?
Или на итемах триггеры с аналогичными действиями, в рез-те которых статус записи/блока меняется на CHANGED ?
...
Рейтинг: 0 / 0
07.12.2012, 11:58
    #38069310
Ирина В.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FORMS 6i вставка строки
bev,

POST_QUERY нет. на item вообще никаких триггеров нет. Просто из таблицы данные заливаются и все.

С нуля переписала всю форму и заработало! Но что было, и может ли такое повториться осталось вопросом...
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / FORMS 6i вставка строки / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]