powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как обновить одну запись без execute_query?
8 сообщений из 8, страница 1 из 1
Как обновить одну запись без execute_query?
    #38840215
Basil_Tsvetkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги!

Неужто в формах до сих пор нет возможности перезапросить одну запись в блоке без перезапроса всего блока?!

Например, я кнопкой запустил процедурку для пересчета одной записи и хочу увидеть изменения в ней одной, например.

Может я чего не знаю, но работал еще с формами 4.0 и всегда мучаюсь в таких случаях, а ведь это было бы так просто внутри форм реализовать.
...
Рейтинг: 0 / 0
Как обновить одну запись без execute_query?
    #38841083
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil_Tsvetkov,

Ничего нового не появилось.
В свое время писал процедуру, которая выполняет последний запрос в блоке и встает на ту же запись.
...
Рейтинг: 0 / 0
Как обновить одну запись без execute_query?
    #38842356
Basil_Tsvetkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне такие фокусы с перезапросом блока не очень нравятся.
В конкретном случае я использовал для каждого из изменяющихся полей БД по два поля в блоке: одно с привязкой невидимое, другое свободное видимое.
Форма неизменяемая.
Триггер post-query заполяет свободные поля из привязанных.
Процедура пересчета возвращает все измененные поля, которые копируются в свободные поля на форме.
...
Рейтинг: 0 / 0
Как обновить одну запись без execute_query?
    #38842415
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil_TsvetkovМне такие фокусы с перезапросом блока не очень нравятся.
В конкретном случае я использовал для каждого из изменяющихся полей БД по два поля в блоке: одно с привязкой невидимое, другое свободное видимое.
Форма неизменяемая.
Триггер post-query заполяет свободные поля из привязанных.
Процедура пересчета возвращает все измененные поля, которые копируются в свободные поля на форме.
Я делал универсальное решение для любых форм.
Вот нашел в загашниках.
Может интересно будет.
...
Рейтинг: 0 / 0
Как обновить одну запись без execute_query?
    #38842488
Basil_Tsvetkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов,

На мой взгляд это тяжелое решение. Целое API, которое нужно осознать.

Еще вариант который я нащупал это сформировать динамический запрос (также как делает сам формс), на основе DataSourceName и :SomeBlock.ROWID. Затем останется пробежать по элементам, привязанным в БД и заполнить их из курсора.

Но, во первых, нет возможности обойти программно все элементы блока(фиг знает, может через Java можно).

И, во вторых, не понял как делать динамический SQL (FormsDDL не возвращает данные).
...
Рейтинг: 0 / 0
Как обновить одну запись без execute_query?
    #38842555
-=APS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд это тяжелое решение. Целое API, которое нужно осознать.Да ну, вполне нормальное решение. Имхо, там обеспечивается то, что нужно, да бонусом сортировка; корректно смещения скроллинга обрабатывает; плюс не ломает базовую функциональность database блока.

И, во вторых, не понял как делать динамический SQL (FormsDDL не возвращает данные).Есть built-in package EXEC_SQL.
...
Рейтинг: 0 / 0
Как обновить одну запись без execute_query?
    #38842585
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil_TsvetkovНа мой взгляд это тяжелое решение. Целое API, которое нужно осознать.


Не знаю, эту хрень написал еще в 94 году для Forms 3.0 отдельными процедурами.
Потом, для 6i, процедуры собрал в пакет.
Много лет работало безотказно.

Про тяжесть не согласен.
Всего то нужно в четырех триггерах по строчке добавить.
А твое решение с дублированием полей - индивидуальное для каждой формы.

Опять же, я не настаиваю :-)
...
Рейтинг: 0 / 0
Как обновить одну запись без execute_query?
    #38842871
Фотография mRdUKE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil_Tsvetkov,

set_block_property -> onetime_where ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как обновить одну запись без execute_query?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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