|
Как обновить одну запись без execute_query?
|
|||
---|---|---|---|
#18+
Коллеги! Неужто в формах до сих пор нет возможности перезапросить одну запись в блоке без перезапроса всего блока?! Например, я кнопкой запустил процедурку для пересчета одной записи и хочу увидеть изменения в ней одной, например. Может я чего не знаю, но работал еще с формами 4.0 и всегда мучаюсь в таких случаях, а ведь это было бы так просто внутри форм реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2014, 09:39 |
|
Как обновить одну запись без execute_query?
|
|||
---|---|---|---|
#18+
Basil_Tsvetkov, Ничего нового не появилось. В свое время писал процедуру, которая выполняет последний запрос в блоке и встает на ту же запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2014, 20:39 |
|
Как обновить одну запись без execute_query?
|
|||
---|---|---|---|
#18+
Мне такие фокусы с перезапросом блока не очень нравятся. В конкретном случае я использовал для каждого из изменяющихся полей БД по два поля в блоке: одно с привязкой невидимое, другое свободное видимое. Форма неизменяемая. Триггер post-query заполяет свободные поля из привязанных. Процедура пересчета возвращает все измененные поля, которые копируются в свободные поля на форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 09:48 |
|
Как обновить одну запись без execute_query?
|
|||
---|---|---|---|
#18+
Basil_TsvetkovМне такие фокусы с перезапросом блока не очень нравятся. В конкретном случае я использовал для каждого из изменяющихся полей БД по два поля в блоке: одно с привязкой невидимое, другое свободное видимое. Форма неизменяемая. Триггер post-query заполяет свободные поля из привязанных. Процедура пересчета возвращает все измененные поля, которые копируются в свободные поля на форме. Я делал универсальное решение для любых форм. Вот нашел в загашниках. Может интересно будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 10:30 |
|
Как обновить одну запись без execute_query?
|
|||
---|---|---|---|
#18+
Павел Лузанов, На мой взгляд это тяжелое решение. Целое API, которое нужно осознать. Еще вариант который я нащупал это сформировать динамический запрос (также как делает сам формс), на основе DataSourceName и :SomeBlock.ROWID. Затем останется пробежать по элементам, привязанным в БД и заполнить их из курсора. Но, во первых, нет возможности обойти программно все элементы блока(фиг знает, может через Java можно). И, во вторых, не понял как делать динамический SQL (FormsDDL не возвращает данные). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:08 |
|
Как обновить одну запись без execute_query?
|
|||
---|---|---|---|
#18+
На мой взгляд это тяжелое решение. Целое API, которое нужно осознать.Да ну, вполне нормальное решение. Имхо, там обеспечивается то, что нужно, да бонусом сортировка; корректно смещения скроллинга обрабатывает; плюс не ломает базовую функциональность database блока. И, во вторых, не понял как делать динамический SQL (FormsDDL не возвращает данные).Есть built-in package EXEC_SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:41 |
|
Как обновить одну запись без execute_query?
|
|||
---|---|---|---|
#18+
Basil_TsvetkovНа мой взгляд это тяжелое решение. Целое API, которое нужно осознать. Не знаю, эту хрень написал еще в 94 году для Forms 3.0 отдельными процедурами. Потом, для 6i, процедуры собрал в пакет. Много лет работало безотказно. Про тяжесть не согласен. Всего то нужно в четырех триггерах по строчке добавить. А твое решение с дублированием полей - индивидуальное для каждой формы. Опять же, я не настаиваю :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:57 |
|
|
start [/forum/topic.php?fid=51&fpage=6&tid=1878101]: |
0ms |
get settings: |
3ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
59ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
214ms |
get tp. blocked users: |
1ms |
others: | 362ms |
total: | 653ms |
0 / 0 |