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

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

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


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