powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
8 сообщений из 8, страница 1 из 1
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101103
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть шедулер TcxScheduler, он завязан на базу FB 3.0. В шедулер могут вписывать события разные юзеры - как красиво обновлять календарную сетку при внесении изменений другим пользователем?
вариант 1. - по таймеру рефрешим датасет, но тогда проблема - пользователь может уже что-то редактировать, рефреш собьет ему работу.
вариант 2 - поджечь Notify средствами БД и по триггеру на обновление шлем нотифай и ловим его в программе у всех клиентах, но опять-таки, они могут в этот момент уже редактировать событие и рефреш датасета сбросит набранные изменения.
вариант 3- делать ручную блокировку записи - делаем допполе, куда при открытии окна редактирования записать кто и когда заблочил запись. Тогда перед редактированием проверяем - никто туда не вписался. Если вписался - выводим сообщение с записанным текстом, чтоб пользователь знал, кто заблочил и уже потом разбирался организационно. Но вот если кто-то заблочил и произошла ошибка и блок не снялся и будет висеть. Конечно это все можно разрулить, но это лишние телодвижения. Может, есть какие-то более красивые решения? про селект with lock в курсе, но в бою не пробовал и боюсь будут эксепшены, а не хотелось бы, и шедулер не умеет селектить с блоком.
...
Рейтинг: 0 / 0
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101105
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновлять кроме текущей записи, которая редактируется. При попытке сохранения -- сообщать, что запись за время редактирования уже была изменена, и спрашивать подтверждения о том, что те данные могут быть перезаписаны. Изменение данных можно контролировать по доп полю с последней датой изменения записи (сверять с той, что была получена в последний раз на клиенте).
...
Рейтинг: 0 / 0
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101106
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrigoriyFomin
...FB 3.0...


Подписаться на событие "Данные изменились", по получении - энейблить кнопку "Обновить". Если юзер хочет - жмёт кнопку в удобный ему момент .

Ничего не блокировать, ибо если кто-то редактирует ту же самую запись - это проблема не техническая, а административная. Точно также дурак может испортить запись после её разблокировки.
...
Рейтинг: 0 / 0
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101110
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFomin
в бою не пробовал и боюсь будут эксепшены

Основная проблема.
...
Рейтинг: 0 / 0
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101120
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman
GrigoriyFomin
в бою не пробовал и боюсь будут эксепшены

Основная проблема.

просто по опыту использования подписки на эвенты в DataSnap - они могли пропадать при переконнекте или еще каких ситуациях с коннектом, вообщем, вещь ненадежная. Ожидаю, что будут тоже проблемы в боевых условиях
...
Рейтинг: 0 / 0
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101121
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
GrigoriyFomin
...FB 3.0...


Подписаться на событие "Данные изменились", по получении - энейблить кнопку "Обновить". Если юзер хочет - жмёт кнопку в удобный ему момент .

Ничего не блокировать, ибо если кто-то редактирует ту же самую запись - это проблема не техническая, а административная. Точно также дурак может испортить запись после её разблокировки.

пользователи - тети после бальзаковского возраста - им сама программа уже сахар подняла многократно, кнопку точно жать не будут, им надо принудительно обновлять календарь с событиями, но так, чтоб выделение и редактирование не пропало.. Можно конечно раз в минуту по таймеру рефреш делать, но они могут в это время что-то уже внести....
...
Рейтинг: 0 / 0
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101126
crazypiggy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заведите таблицу куда скидывайте информацию после обновления что для таких то пользователей необходимо обновить Sheduler. А у пользователя мониторьте эту таблицу. После обновления у пользователя, удаляете запись в таблице для этого пользователя. что то в этом роде. И не придется дергать большие таблицы, и рефрешить впустую по таймеру
...
Рейтинг: 0 / 0
подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
    #40101127
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrigoriyFomin
...
пользователи - тети после бальзаковского возраста...

30-40 лет?

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

Вариантов у тебя нет, с данным контролом беспроблемно можно обновить данные только тогда, когда пользователь готов их обновить. Если ввод не завершен, то обновление вызовет потерю введенного фрагмента данных. Стало быть, ты должен
1. либо переложить ответственность на обновление на пользователя (1-2 раза потеряет данные - научится),
2. либо отслеживать режим редактирования (это просто).
Второй вариант чреват возможностью перехода в режим вечного ожидания (пользователь ввёл одну букву и задумался).
...
3. У меня DevEx старые, отсутствует TcxScheduler, т.е. дальше лишь предположения. Итак, возможно, данный компонент умеет работать с кастомным датасетом, который можно менять в любой момент и так и тогда, когда захочет левая пятка. Я - о provider mode. Если такое возможно, то вы запросто можете менять отображаемые данные в любой момент, любой элемент.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / подскажите решение - несколько пользователей работают с шедулером - как обновить у всех
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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