|
|
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
SvDevУ меня у самого руки чешутся использовать instead of для чего-то подобного. Самое классное во вью с instead of триггером - удобство использования. Все таблицы один раз соединены в запросе, все нужные поля из соединенных таблиц описаны, данные вставлять при транзакции можно хоть в несколько таблиц. Был Forms - использовали view в форме. Пришел на смену Apex - сгенерировать форму на Apex на основе такого вью - раз плюнуть. И Apex не вечен - изменится среда разработки - да пускай, я думаю, что в любой среде не составит труда сделать быстро форму на основе такого вью. Рекомендую, общем) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 06:55 |
|
||
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
Mr_FrostЕсли у региона указать идентификатор первичный ключ, а не rowid - проблем не будет. Кроме одной. У Apex'а есть баг. Несмотря на то, что ему сказано идентифицировать строки по первичному ключу, для Validations он использует rowid, а т.к. rowid из такого вью не извлечь - возникает ошибка. Приходится удалять Validations - тогда все прекрасно работает. А вот про это я забыл. Я сейчас использую instead of только с tabular forms, поэтому этот момент для Automatic Row Processing не проверял, но поэдие ошибка если возникает, наверняка только, если вьюшка сама по себе не обновляемая. (Как и ошибка в топике). Надеюсь исправят, т.к. мешает сильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 09:42 |
|
||
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
Mr_FrostС error handling function есть проблема - как в функции отличать Insert от U или D? Обнулять id нужно только при неудавшемся Insert. По переменной request. Правда не думаю, что это единственная проблема, просто этот вариант менее очевидный для меня, скорее всего ещё какие-нибудь приколы есть. Тут нужно смотреть отлаженное в рабочей среде решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 09:58 |
|
||
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
Таки минус instead это все тот же returning. Оракл его не поддерживает у таких вьюх. Еще остается вариант сделать свой процесс роу. Хотя смысла не вижу. Проще после родного сделать новый для селекта currval. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 10:20 |
|
||
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
С currval все сработало! Т.е. цепочка такая - сразу после процесса Automatic Row Processing (DML) создаем процесс, в котором и заполняем первичный ключ: Код: plsql 1. 2. 3. 4. 5. 6. условие if :P1_ID is null then нужно, чтобы currval не читался при Update и Delete. Еще раз спасибо всем за хорошие идеи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 10:25 |
|
||
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
Mr_Frost, Я бы просто повесил бы на кнопку и все, вдруг другое действие с другим :request придет, но это зависит от приложения уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 10:40 |
|
||
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
SvDevMr_Frost, Я бы просто повесил бы на кнопку и все, вдруг другое действие с другим :request придет, но это зависит от приложения уже да вроде бы и так достаточно, два процесса друг за другом. Первый сделал insert, вторым тут же читаем currval. Потестировал, работает, так что пока такое решение приняли как рабочее. Если вдруг всплывут какие гадости - отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 10:47 |
|
||
|
Проблема с формой, построенной на VIEW с Instead of триггером
|
|||
|---|---|---|---|
|
#18+
Mr_Frost, Условие на кнопку не обязательно, если все вспомогательные действия сделаны по уму, через Аякс, а если есть, например, select list with submit вылезут косяки. Мало ли кто тему читать будет, не у всех все через аякс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 11:09 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=38931323&tid=1875004]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
187ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 468ms |

| 0 / 0 |
