Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / dw.Update для отдельной записи / 8 сообщений из 8, страница 1 из 1
17.08.2004, 00:12
    #32651867
figvam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
Возможно ли настроить dw так, чтобы Update выполнялся только для одной записи (например текущей), при том что изменённых может быть несколько? Мне иногда необходимо, чтобы удаление строки отрабатывалось немедленно.
С этим связан и второй вопрос
2) какие технологии работы с удалёнными записями в многострочном dw возможны?
Расшифрую свой вопрос: Пользователь удалил одну запись (dw.deleterow(0)), изменяет др. записи, потом что-то соображает - решает не сохранять изменения, поэтому закрывает окно без сохранения, а про 'удалённую' запись он забыл, потому что она не отображается (а её действительно необходимо удалить). Для сравнения в FoxPro можно настроить Grid (аналог многострочного dw), что в режиме редактирования записи после удаления будут продолжать отображаться, но будут помечены в первом дополнительном столбце.
...
Рейтинг: 0 / 0
17.08.2004, 00:52
    #32651874
alexis glinski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
mozhno proveryat' dwcontrol . DeletedCount ()
...
Рейтинг: 0 / 0
17.08.2004, 06:08
    #32651930
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
См. следующие события в 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). Дальнейший геморрой по обработке на ваше усмотрение.
...
Рейтинг: 0 / 0
17.08.2004, 09:00
    #32652022
Kr_Yury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
То, что можно реализовать такую функциональность через скрипт я понимаю. Меня интересовали встроенные возможности PB (по первому вопросу)
...
Рейтинг: 0 / 0
17.08.2004, 11:38
    #32652369
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
Насколько я понимаю, figvam и Kr_Yury - одно и тоже лицо :-).
Настроить так как Вы этого хотите - нельзя. (А кому это нужно, кроме Вас? Это не в плане наезда, а в плане того, что на всех не угодишь. Мне тоже хочется, что бы в DW был бы режим просмотра, при котором выпадающие списки бы не выпадали, хочется что бы в grid'е было бы single Line Edit поле с кнопкой.)

ЗЫ ООП - Вас спасет.
...
Рейтинг: 0 / 0
17.08.2004, 14:43
    #32652958
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
figvamВозможно ли настроить dw так, чтобы Update выполнялся только для одной записи (например текущей), при том что изменённых может быть несколько? Мне иногда необходимо, чтобы удаление строки отрабатывалось немедленно.
С этим связан и второй вопрос
2) какие технологии работы с удалёнными записями в многострочном dw возможны?
Расшифрую свой вопрос: Пользователь удалил одну запись (dw.deleterow(0)), изменяет др. записи, потом что-то соображает - решает не сохранять изменения, поэтому закрывает окно без сохранения, а про 'удалённую' запись он забыл, потому что она не отображается (а её действительно необходимо удалить). Для сравнения в FoxPro можно настроить Grid (аналог многострочного dw), что в режиме редактирования записи после удаления будут продолжать отображаться, но будут помечены в первом дополнительном столбце.DataWindow формирует DML операторы для каждой измененной записи. Т.е., если вы внесли изменения в N записей, то будет сформировано N запросов UPDATE. Аналогично с DELETE. Все это можно либо обработать в соответствующих хранимых процедурах, либо работать на клиенте, перехватывая событие SQLPreview.
...
Рейтинг: 0 / 0
20.08.2004, 16:48
    #32659588
Kr_Yury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
Иногда полезно повторять пройденное. Нашёл то, что мне было необходимо:
dw.RowsDiscard удаляет диапазон строк из буфера, но не перемещает их в буфер Delete!
...
Рейтинг: 0 / 0
21.08.2004, 08:05
    #32659969
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dw.Update для отдельной записи
авторИногда полезно повторять пройденное. Нашёл то, что мне было необходимо:
dw.RowsDiscard удаляет диапазон строк из буфера, но не перемещает их в буфер Delete!

Правда в БД ничего при этом удалено не будет.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / dw.Update для отдельной записи / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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