Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 28 мар 2024, 09:49

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Обновить состояние чекбоксов
СообщениеДобавлено: 23 янв 2019, 17:18 
Не в сети

Зарегистрирован: 14 июн 2016, 16:11
Сообщений: 14
Добавил новые поля в мемо таблицу для выбора ячеек

После апдейта определенной записи - сохраняю в базу, после переоткрытия материнской таблицы делаю:

Код:
dmMain.mtFieldPal.DisableControls;
       dmMain.mtFieldPal.First;
       while not dmMain.mtFieldPal.Eof do
        begin
         dmMain.mtFieldPal.Edit;
         dmMain.mtFieldPal.FieldValues['R'] := False;
         dmMain.mtFieldPal.FieldValues['S'] := False;
         dmMain.mtFieldPal.Post;
         dmMain.mtFieldPal.Next;
        end;
       dmMain.mtFieldPal.First;
       dmMain.mtFieldPal.EnableControls;


если таблица маленькая - то работает быстро, если более 10000 строк - чрезвычайно медленно.
Есть какой другой способ сделать состояние всех значений в чекбоксах = "не выбрано"?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Обновить состояние чекбоксов
СообщениеДобавлено: 05 фев 2019, 00:22 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

Обычно, если необходимо обновить значения во всех записях или
в группе записей у которых есть общая ссылка, это делается через
один отдельный запрос.

Код:
update table_name
  set R = False, S = False
  where ref_key = :ref_key_value

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Обновить состояние чекбоксов
СообщениеДобавлено: 08 фев 2019, 16:09 
Не в сети

Зарегистрирован: 14 июн 2016, 16:11
Сообщений: 14
Спасибо,

это решение на стороне сервера базы, на клиента уже придет обновленный датасет.
Получается, что если колонка создана уже на клиенте, то кроме как пробежаться по циклу по записям никакого варианта нет?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Обновить состояние чекбоксов
СообщениеДобавлено: 08 фев 2019, 17:20 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

Количество вариантов решения вашей задачи зависит от точного определения ограничений на работу функционала.

Если нужно обновить данные "быстро", но в ДатаСете нет возможности перезагрузить данные с сервера,
то вы можете выполнить данную операцию за несколько "быстрых" шагов.
1. Обновить данные на сервере с помощью запроса
update table_name set R = False, S = False where ref_key = :ref_key_value
2. Отключить в ДатаСете обновление на сервер.
3. Пробежаться по ДатаСету и проставить аналогичное значение полей.
4. Включить в ДатаСете обновление на сервер.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB