|
Азы Application Express.
|
|||
---|---|---|---|
#18+
Уважаемые коллеги! Вдохновленный, как и многие из вас, бесплатностью Oracle XE, установил сабж и стал осваивать Application Express. С Ораклом знаком не понаслышке, приложения под разные БД писал во множестве, однако ApEx – совсем другое дело, тут просто надо выучить интерфейс и характерные приемы. С чем успел ознакомиться: - Oracle® Database Application Express User’s Guide Release 2.2 B28550-01; - Oracle® Database 2 Day + Application Express Developer’s Guide Release 2.2 B28839-01; - Oracle Database 10g Express Edition Tutorial, который можно скачать с офсайта. - Идущий в комплекте с Oracle XE “Get started”. Однако, это не разрешило всех моих проблем. Пожалуйста, помогите найти в сети более детальную документацию по сабжу. Визарды, конструкторы – это прекрасно, но иногда не мешает вмешаться и ручками. Также есть пара конкретных проблем, которые никак не могу побороть: 1. Как устроен и работает Process формы? Автоматически создаваемые процессы типа ApplyMRU, AddRows имеют только несколько ничего не решающих настроек, но никакого кода внутри. Как я могу осознанно повлиять на процедуры обновления данных или добавления строк? 2. Как можно изменить метод генерации значений ключевого поля (source for primary and foreign key columns) Tabular Form после ее создания? Например, при создании я выбрал тип ”Existing Sequence”, а затем решил сменить его на Custom PL_SQL function. И как можно изменить тело этой PL_SQL function? 3. Откуда все эти вопросы? Да просто я пытаюсь реализовать связь «многие-ко-многим» через третью таблицу. Т.е. таблица A (A.a_id, A.a_name) связана с B (B.b_id, B.b_name) посредством С (C.c_id, C.a_id, C.b_id). Первым делом я создаю регион Report, выводящий содержимое A. Затем создаю элемент Hidden P1_A_ID. После этого создаю линк в поле отчета A.a_name на ту же страницу, заполняющий элемент P1_A_ID значениями A.a_id при нажатии на линк. Дальше создаю второй регион на этой же странице – Tabular form с возможностью добавления данных для таблицы C. По желанию можно отфильтровать значения по условию ”Where C.a_id = :P1_A_ID”, чтобы выводить в Tabular form только те данные, которые связаны с выбранным значением А. Момент, вызвавший затруднение: при создании tabular form я указал два Primary key: C.c_id, заполняемый из excising sequence, и C.a_id, который должен был заполняться из PL_SQL expression вида (return :P1_A_ID;). Проблема заключается в том, что при добавлении новой записи C.a_id также заполняется из последовательности, причем из той же, что и C.c_id! Очень прошу, объясните, где я был не прав, а также пролейте свет на вопросы 1 и 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2006, 14:05 |
|
Азы Application Express.
|
|||
---|---|---|---|
#18+
Уважаемые, подкиньте хотя бы ссылок на литературу по сабжу! Очень надо, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2006, 17:14 |
|
Азы Application Express.
|
|||
---|---|---|---|
#18+
DIvanI 1. Как устроен и работает Process формы? Автоматически создаваемые процессы типа ApplyMRU, AddRows имеют только несколько ничего не решающих настроек, но никакого кода внутри. Как я могу осознанно повлиять на процедуры обновления данных или добавления строк? Процессы делятся на категории, по типу когда их выполнять (On Load, On Submit и тд.). На каждый из них может быть быть наложено условие- в каком случае он должен сработать. При наличии нескольких процессов для выполнения они выполняются по очереди, согласно их sequence. Осознанно влиять - создаёте свои собственные процессы и пишите там всё что угодно. DIvanI 2. Как можно изменить метод генерации значений ключевого поля (source for primary and foreign key columns) Tabular Form после ее создания? Например, при создании я выбрал тип ”Existing Sequence”, а затем решил сменить его на Custom PL_SQL function. И как можно изменить тело этой PL_SQL function? Создайте эту функция и укажите там её имя?... DIvanIУважаемые, подкиньте хотя бы ссылок на литературу по сабжу! Очень надо, пожалуйста! Вам сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2006, 06:41 |
|
Азы Application Express.
|
|||
---|---|---|---|
#18+
Большое спасибо за помощь! Проблему я таки поборол, написав свою функцию для генерации ключа. Смутило то, что в результате работы визарда по созданию новой tabular form, не смотря на мои указания, _оба_ ключа таблицы почему-то генерировались из последовательности, указанной для первого ключа. Для второго ключа я указывал функцию, но визард понял меня по-своему :) Проблема решилась прописыванием руками метода генерации ключа. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2006, 10:36 |
|
|
start [/forum/topic.php?fid=50&fpage=103&tid=1877858]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 429ms |
0 / 0 |