Последняя версия DataExpress 3 beta от 9 августа 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Расширения
ИзображениеИзображениеИзображение

Обновление данных при изменении другим пользователем

Обсуждаются вопросы удаленного доступа к базе данных.
AndreyM
Новичок
Сообщения: 38
Зарегистрирован: Ср ноя 06, 2019 12:44 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Обновление данных при изменении другим пользователем

Сообщение AndreyM » Сб ноя 16, 2019 11:45 pm

Здравствуйте!

Подскажите, пожалуйста, как можно решить вопрос с автоматическим обновлением таблицы.
Например, одна и та же таблица открыта двумя пользователями. Второй пользователь изменяет информацию.
Первый пользователь увидит изменения только после нажатия кнопки "Обновить".

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

Спасибо.
Андрей

AndreyM
Новичок
Сообщения: 38
Зарегистрирован: Ср ноя 06, 2019 12:44 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Обновление данных при изменении другим пользователем

Сообщение AndreyM » Вс ноя 17, 2019 12:01 am

Сам спросил - сам ответ нашел :)

---
Сообщение kroks » Пт мар 17, 2017 8:04 pm

jurist23rus писал(а):
Ну а когда пользуешься штатной кнопкой обновить - это разве не та же самая нагрузка?

Вручную: это управляемая нагрузка. А если автоматика будет обновлять, то считаем: 10 клиентов * 6 нажатий/в минуту(каждые 10 сек.) = 60 обновлений в минуту. Тем паче в DataExpress запросы расставлены так, что они не смогут работать экономно а будут тянуть все содержимое формы. База (не та, что на вашем настольном компьютере в виде файлика лежит) только и будет занята обработкой бессмысленных запросов этой DDOS-атаки. А ей работать надо.
jurist23rus писал(а):
автоматизировать в скрипте.

Тогда уже это должен выполнять сам сервер. И рассылать клиентам команду на обновление если он увидел что есть изменения.

З.Ы. Поиграйтесь, если уже такое большое желание есть.
КОД: ВЫДЕЛИТЬ ВСЁ · СВЕРНУТЬ

procedure AR(S: TObject);
begin
if (Self.State <> dsEdit) and
(Self.State <> dsInsert) then
Self.Refresh;
end;

procedure Form_Create;
var T: TTimer;
begin
T := TTimer.Create(Self);
T.Enabled:=true;
T.Interval := 5000;
T.Ontimer := @AR;
end;

Отдал - возьми! Взял - отдай! Изображение