Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Каким образом делается логика обновления БД, если стандартных средств (Stored Procedures & Update ... Set ...) не хватает (выбор процедуры зависит от введенных данных)? PB10, Oracle9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 11:53 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
JustVasвыбор процедуры зависит от введенных данных Выбор процедуры для сохранения? Ну напишите тогда процедуруы, которые будут вызывать соответствующие процедуры для сохранения, в зависимости от введенных данных, и подключите их к DataWindow. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 12:05 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Ну напишите тогда процедуруы, которые будут вызывать соответствующие процедуры для сохранения, в зависимости от введенных данных, и подключите их к DataWindow. Подгонять серверную часть под клиентскую несколько нетактично, imho... Это задача клиента сделать выбор. Кроме того, клиенту кроме вызова серверной процедуры часто приходится делать свои клиентские дела ;) В OracleForms это делалось пререкрытием событий (тиггеров) On-Update, On-Insert, On-Delete. В PB есть что-то подобное или реализован какой-то другой механизм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 12:18 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
авторПодгонять серверную часть под клиентскую несколько нетактично, imho... По-моему это называется перенос логики на сервер. А так у вас получается - половина здесь, а половина там. Почему бы и оставшуюся часть на сервер не вынести? Я бы не назвал это подгонкой серверной части под клиентскую... ...ну или тогда динамически меняйте процедуру для работы с данными в DataWindow. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 12:41 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 13:44 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Не очень правильно, но сделать можно: используйте событие DataWindow - SQLPreview. Можно менять текст запроса, который будет отправлен на сервер при обновлении данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 14:06 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
подойдет? Вполне. Только на какое событие это повесить? Ведь выбор процедуры зависит от строки к строке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 14:12 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Сотниковподойдет? Кстати, именно это я и имел ввиду. А то вдруг кто подумает, что я советовал поцедуры в базе менять :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 14:22 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
JustVas подойдет? Вполне. Только на какое событие это повесить? Ведь выбор процедуры зависит от строки к строке... Так... низя... Могу предложить следующий вариант: 1) делаете своё DW и работаете с ним. 2) создаёте дополнительно столько датасторов, сколько у вас хранимых процедур на Update, и привязываете эти процедуры к этим датасторам. 3) для Update копируете строки по какому то нужному вам критерию в имеющиеся датасторе и апдейтит их. 4) У вашего DW либо ретирив, либо ResetStatus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 14:57 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Так... низя... Могу предложить следующий вариант: 1) делаете своё DW и работаете с ним. 2) создаёте дополнительно столько датасторов, сколько у вас хранимых процедур на Update, и привязываете эти процедуры к этим датасторам. 3) для Update копируете строки по какому то нужному вам критерию в имеющиеся датасторе и апдейтит их. 4) У вашего DW либо ретирив, либо ResetStatus Опять же... Какое событие будет заниматься п.3? Об этом я и спрашиваю: есть ли функция, получающая управление для каждой изменяющейся(IUD) строки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 15:33 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
JustVasОпять же... Какое событие будет заниматься п.3? Об этом я и спрашиваю: есть ли функция, получающая управление для каждой изменяющейся(IUD) строки? Дык сказали уже SQLPreview event, только как-то криво это получается, уж лучше все тогда из своего скрипта вызывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 16:47 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
JustVas Так... низя... Могу предложить следующий вариант: 1) делаете своё DW и работаете с ним. 2) создаёте дополнительно столько датасторов, сколько у вас хранимых процедур на Update, и привязываете эти процедуры к этим датасторам. 3) для Update копируете строки по какому то нужному вам критерию в имеющиеся датасторе и апдейтит их. 4) У вашего DW либо ретирив, либо ResetStatus Опять же... Какое событие будет заниматься п.3? Об этом я и спрашиваю: есть ли функция, получающая управление для каждой изменяющейся(IUD) строки? Не понимаю... какое событие? клик на кнопке "Сохранить" к примеру... и зачем знать какая изменяющая? при перемещении (в данном случае из DW в DS) строки сохраняют статусы и билдер будет генерить код для строк со статусом DataModified! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 18:24 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Если очень хочется через процедуру - ну так напишите одну общую на все параметры и внутри нее делайте разводку логики и вызывайте остальные процедуры, какие нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 18:40 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Локшин Марк JustVasОпять же... Какое событие будет заниматься п.3? Об этом я и спрашиваю: есть ли функция, получающая управление для каждой изменяющейся(IUD) строки? Дык сказали уже SQLPreview event, только как-то криво это получается, уж лучше все тогда из своего скрипта вызывать...Давным-давно, когда компьютеры были большими... Гм... О чем это я? :-)) Так вот, фича, позволяющая в DW описывать обновляющие его хранимые процедуры, появилась не так давно, если мне не изменяет мой склероз - в версии 7.0... До этого, подобную функциональность рекомендовалось обеспечивать, описывая в событии SQLPreview вызовы хранимых процедур либо еще каким-то образом меняя логику изменения данных. Так что, не так уж и криво, IMHO. Хотя, конечно, Локшин Марк...процедуруы, которые будут вызывать соответствующие процедуры для сохранения, в зависимости от введенных данных, и подключите их к DataWindow.наиболее правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 20:40 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
авторМогу предложить следующий вариант: 1) делаете своё DW и работаете с ним. 2) создаёте дополнительно столько датасторов, сколько у вас хранимых процедур на Update, и привязываете эти процедуры к этим датасторам. 3) для Update копируете строки по какому то нужному вам критерию в имеющиеся датасторе и апдейтит их. 4) У вашего DW либо ретирив, либо ResetStatus авторОпять же... Какое событие будет заниматься п.3? Об этом я и спрашиваю: есть ли функция, получающая управление для каждой изменяющейся(IUD) строки? При выполнении функции update(), у Вас всегда будет вызываться событие updatestart(). Вот его и используйте для выполнения п.3 Полагаю, что Вы уже знаете как найти в DataWindow новые, измененные и удаленные строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 06:36 |
|
||
|
custom UPDATE
|
|||
|---|---|---|---|
|
#18+
Guest_2 авторМогу предложить следующий вариант: 1) делаете своё DW и работаете с ним. 2) создаёте дополнительно столько датасторов, сколько у вас хранимых процедур на Update, и привязываете эти процедуры к этим датасторам. 3) для Update копируете строки по какому то нужному вам критерию в имеющиеся датасторе и апдейтит их. 4) У вашего DW либо ретирив, либо ResetStatus авторОпять же... Какое событие будет заниматься п.3? Об этом я и спрашиваю: есть ли функция, получающая управление для каждой изменяющейся(IUD) строки? При выполнении функции update(), у Вас всегда будет вызываться событие updatestart(). Вот его и используйте для выполнения п.3 Полагаю, что Вы уже знаете как найти в DataWindow новые, измененные и удаленные строки. Или перекрыть функцию Update для унаследованного от DataWindow control пользовательского объекта с вызовом функции Update для Super'а, а перед этим вызвать свое событие, определенное для этого же пользовательского объекта. Вот в этом событии все и сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 09:59 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32894644&tid=1338575]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 164ms |

| 0 / 0 |
