|
|
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
Возможно ли настроить dw так, чтобы Update выполнялся только для одной записи (например текущей), при том что изменённых может быть несколько? Мне иногда необходимо, чтобы удаление строки отрабатывалось немедленно. С этим связан и второй вопрос 2) какие технологии работы с удалёнными записями в многострочном dw возможны? Расшифрую свой вопрос: Пользователь удалил одну запись (dw.deleterow(0)), изменяет др. записи, потом что-то соображает - решает не сохранять изменения, поэтому закрывает окно без сохранения, а про 'удалённую' запись он забыл, потому что она не отображается (а её действительно необходимо удалить). Для сравнения в FoxPro можно настроить Grid (аналог многострочного dw), что в режиме редактирования записи после удаления будут продолжать отображаться, но будут помечены в первом дополнительном столбце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 00:12 |
|
||
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
mozhno proveryat' dwcontrol . DeletedCount () ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 00:52 |
|
||
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
См. следующие события в DW Control: UpdateStart, UpdateEnd, SQLPreview Фактически после выполнения функции DeleteRow( ll_Row ), строка с номером ll_row переносится из Primary! буфера в Delete! буфер. Для манипуляций с содержимым буферов DW можно пользоваться следующими ф-ми: RowsCopy(...), RowsMove(...), RowsDiscard(...) Получить/Изменить статус строки (элемента) DW можно через: getItemStatus(...), setItemStatus(...). Сбросить update flags можно через ResetUpdate(). Для определения кол. удал. строк используется: deletedCount() Для определения кол. изм. строк используется: modifiedCount() Для определения кол. не отображаемых строк (не удовл. усл. фильтации) используется: FilteredCount() авторДля сравнения в FoxPro можно настроить Grid (аналог многострочного dw), что в режиме редактирования записи после удаления будут продолжать отображаться, но будут помечены в первом дополнительном столбце. И что же Вам мешает это реализовть в DataWindow? Добавте фиктивное поле в SQL запрос, в выражение Select (Select ..., ' ' as "IsDeleted" From ... ). Исключите поле IsDeleted из списка изменяемых полей (см. меню Rows --> UpdateProperties в dw painter'e). Дальнейший геморрой по обработке на ваше усмотрение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 06:08 |
|
||
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
То, что можно реализовать такую функциональность через скрипт я понимаю. Меня интересовали встроенные возможности PB (по первому вопросу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 09:00 |
|
||
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю, figvam и Kr_Yury - одно и тоже лицо :-). Настроить так как Вы этого хотите - нельзя. (А кому это нужно, кроме Вас? Это не в плане наезда, а в плане того, что на всех не угодишь. Мне тоже хочется, что бы в DW был бы режим просмотра, при котором выпадающие списки бы не выпадали, хочется что бы в grid'е было бы single Line Edit поле с кнопкой.) ЗЫ ООП - Вас спасет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 11:38 |
|
||
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
figvamВозможно ли настроить dw так, чтобы Update выполнялся только для одной записи (например текущей), при том что изменённых может быть несколько? Мне иногда необходимо, чтобы удаление строки отрабатывалось немедленно. С этим связан и второй вопрос 2) какие технологии работы с удалёнными записями в многострочном dw возможны? Расшифрую свой вопрос: Пользователь удалил одну запись (dw.deleterow(0)), изменяет др. записи, потом что-то соображает - решает не сохранять изменения, поэтому закрывает окно без сохранения, а про 'удалённую' запись он забыл, потому что она не отображается (а её действительно необходимо удалить). Для сравнения в FoxPro можно настроить Grid (аналог многострочного dw), что в режиме редактирования записи после удаления будут продолжать отображаться, но будут помечены в первом дополнительном столбце.DataWindow формирует DML операторы для каждой измененной записи. Т.е., если вы внесли изменения в N записей, то будет сформировано N запросов UPDATE. Аналогично с DELETE. Все это можно либо обработать в соответствующих хранимых процедурах, либо работать на клиенте, перехватывая событие SQLPreview. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2004, 14:43 |
|
||
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
Иногда полезно повторять пройденное. Нашёл то, что мне было необходимо: dw.RowsDiscard удаляет диапазон строк из буфера, но не перемещает их в буфер Delete! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 16:48 |
|
||
|
dw.Update для отдельной записи
|
|||
|---|---|---|---|
|
#18+
авторИногда полезно повторять пройденное. Нашёл то, что мне было необходимо: dw.RowsDiscard удаляет диапазон строк из буфера, но не перемещает их в буфер Delete! Правда в БД ничего при этом удалено не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2004, 08:05 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32652022&tid=1338935]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 498ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...