Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / ORA-00904 при изменении данных в форме / 4 сообщений из 4, страница 1 из 1
02.12.2010, 13:38
    #36991125
lunar-fairy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-00904 при изменении данных в форме
Всем доброго времени суток!

Делаю форму для OeBS. Если делаю ее на view, то при попытке что-либо изменить в любом поле выдается ошибка:

Код: plaintext
1.
2.
ORA-00904: "ROW_ID": недопустимый идентификатор
--------------------------------------------------------------
FRM-40501: Ошибка ORACLE: невозможно зарезервировать запись для обновления или удаления.

Представление:
Код: plaintext
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.
CREATE OR REPLACE FORCE VIEW apps.xxt_gl_pc_headers_v (
   row_id,
   pc_header_id,
   party_id,
   cust_account_id,
   order_num,
   order_date,
   cost_center,
   project_num,
   acceptance,
   cost_invoice_num,
   party_name,
   cust_account,
   cust_account_date
   )
AS
   SELECT ph.ROWID row_id,
          ph.pc_header_id,
          ph.party_id,
          ph.cust_account_id,
          ph.order_num,
          ph.order_date,
          ph.cost_center,
          ph.project_num,
          ph.acceptance,
          ph.cost_invoice_num,
          hzp.party_name,
          hca.account_name cust_account,
          hca.account_established_date cust_account_date
   FROM xxt_gl_pc_headers ph, xxt_ap62_hz_accounts_v hca, hz_parties hzp
   WHERE     hca.party_id = hzp.party_id
         AND hca.cust_account_id(+) = ph.cust_account_id
         AND hca.party_id(+) = ph.party_id;

Можно, конечно, было бы и на основной таблице форму сделать, но хотелось бы уйти от post_query.

Подскажите, пожалуйста, в чем может быть причина.
...
Рейтинг: 0 / 0
02.12.2010, 14:43
    #36991336
Les
Les
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-00904 при изменении данных в форме
Ты можешь повесить триггеры instead if на вьюхе, можешь обрабатывать триггера в формсах on-insert on-update
А так же посмотри свойства полей в блоке, query-only
...
Рейтинг: 0 / 0
03.12.2010, 09:32
    #36992539
lunar-fairy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-00904 при изменении данных в форме
on_insert, on_update и on_delete у меня итак были прописаны. query_only проставляла в yes, но это не помогло.

Как оказалось надо было переопределить on_lock: прописать там null;

Всем спасибо :)
...
Рейтинг: 0 / 0
03.12.2010, 13:47
    #36993349
ya.vypusck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-00904 при изменении данных в форме
lunar-fairyКак оказалось надо было переопределить on_lock: прописать там null;


Так можно делать, если с формой никогда не будут работать несколько пользователей.
В противном случае, надо явно заблокировать строку.
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / ORA-00904 при изменении данных в форме / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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