|
|
|
Правильное обновление рекордсета
|
|||
|---|---|---|---|
|
#18+
Подскажите, как правильно организовать обновление рекордсета и грида в таком случае. Имеется некоторая таблица, изменения в которую вносятся с использованием хранимых процедур. (БД Oracle) Мой порядок действий: Открываю рекордсет на клиенте rs.open "select * from orders" Вывожу его в грид Me.mshflexgrid1.datasource=rs Пользователь выбирает нужную строку, нажимает кнопку редактировать, выводится форма для редактирования, пользователь вносит правки, нажимает "Сохранить". В коде выполняется cmd.execute " {CALL modify_orders(:param1,:param2)". Вопрос: как теперь обновить грид? Закрывать и заново открывать рекордсет и выводить его в грид? А если таблица большая и обновили только одну строку - ради одной строки тащить из базы все записи? При обновлении таблиц обновляемых напрямую, это красиво решается использованием методов рекордсета: rs(0)=NewValue1 rs(1)=NewValue2 rs.update rs.resync adAffectCurrent В базу уходит сначала оператор update … returning rowid, а сразу за ним оператор select … where rowid=nnn , таким образом на клиент возвращается только одна строчка, остается только обновить грид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2007, 13:19 |
|
||
|
Правильное обновление рекордсета
|
|||
|---|---|---|---|
|
#18+
Проставить значения в рекордсете самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2007, 14:06 |
|
||
|
Правильное обновление рекордсета
|
|||
|---|---|---|---|
|
#18+
А если некоторые значения неизвестны? Подставляются в самой хранимой процедуре - timestamp по времени сервера, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2007, 15:51 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=248&tid=2164575]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 407ms |

| 0 / 0 |
