|
|
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
В forms хочу сделать data block на основе обновляемого представления с instead of триггером. Все хорошо только не хочет обновляться. Пробовал различные значения для Key Mode, Locked Mode, Update Changed Column Only, Enforce Primary Key. Установил первичные поля Id и Worker_Id. Не хочет обновляться - пишет FRM-40501: Ошибка ORACLE: невозможно зарезервировать запись для обновления или удаления. В sqlplus обновление этого представления работает. Что сделать чтобы в forms это тоже заработало? Представление - q_day_worker WHERE Clause - MONTH = :MONTH_LIST AND WORKER_ID = :WORKER_LIST ORDER BY Clause - ID Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 14:43 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
Добрый день. Я в этом случае делал обновляемые поля небазовыми, при сохраненнии изменений запускал напрямую update TABLE set field = ..., после чего перечитывал блок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 07:41 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
вопрос:а какие данные в этом блоке нужно изменять? здесь можно менять только два поля key-preserved table - id и worker_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 11:05 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
Ambitziaа какие данные в этом блоке нужно изменять? здесь можно менять только два поля key-preserved table - id и worker_id. Будут изменяться только те поля, которые обрабатываются в instance триггере. Причем изменения должны быть правильно преобразованы в изменения таблиц, на основе которых формируется представление. Иначе выглядеть будет что изменения теряются после commit. Во всем остальном работа как с таблицой - разрешения на изменения полей блока свойствами в design-time или runtime. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 11:15 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
на on-lock триггер повесил свою процедуру и все заработало: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 11:21 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
я хотела сказать, что может вообще без инстед триггеров обойтись, если изменения только основной таблицы касаются. А on-lock возьму на заметку, а то в свое время такая же проблема была. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 11:34 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
Ambitziaя хотела сказать, что может вообще без инстед триггеров обойтись, если изменения только основной таблицы касаются. Думаю что такой подход при разработке ПО значительно труднее в соправождении. А вдруг нужно туже функциональность включить в другую форму. А вдруг что-то надо изменить. Уже в двух местах менять -- вероятность ошибку значительно возростает. А так поменял на сервере раз отладил и спишь спокойно до очередного изменения постановки задачи. Ambitzia А on-lock возьму на заметку, а то в свое время такая же проблема была. Мне тоже понравилось. Только это должно быть встроенно в Forms, а не работает. Может нужно делать view с "FOR UPDATE" и тогда не нужно вообще трогать триггер "on-lock". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 12:04 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
а Вы попробуйте сделать view с for update и открыть этот блок в форме. По-моему, когда форма запрашивает в блок данные, она пытается сделать for update на эти данные. Если изначально в источнике for update задать, то, наверное, ошибка возникнет. Нет времени проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 13:04 |
|
||
|
forms и updatable view
|
|||
|---|---|---|---|
|
#18+
Нужно создать на блоке триггер ON-LOCK и прописать в нем NULL; Модератор: Тема перенесена из форума "Oracle". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2011, 13:11 |
|
||
|
|

start [/forum/topic.php?fid=51&msg=32712591&tid=1878697]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 262ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...