Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > ADO MSSQL Синхронизация сервер-клиент.


Автор: Чучмек 30.9.2013, 21:25
Есть ли возможность средствами ADO реагировать на изменение данных на сервере?
Запущено несколько клиентов подключенных к одной таблице. 
Каждый клиент отображает данные из таблицы и может добавить/изменить/удалить записи.
Необходимо автоматически отобразить эти изменения на остальных клиентах.

Автор: Akella 1.10.2013, 09:53
А если записи будут добавляться довольно часто? Получается, что
1. У пользователя постоянно будет мигать сетка, т.к. будет постоянное обновление НД.
2. Нагрузка на сервер будет увеличена, т.к. с сервера будут постоянно что-то тянуть, даже если и не нужно.
3. Нагрузка на клиент.
4. Нагрузка на сеть.

Представь, что пользователь работает с НД: сортирует его, прокручивает вверх/внизу, а тут бабах, всё сбилось и начинай заново.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//ADO-MSSQL-Синхронизация-сервер-клиент.-id5249c276ae20156029000000#findElement_E7045_524a716dae2015b7140002b1_0

Автор: Akella 1.10.2013, 09:59
Я думаю, что пользователь пусть сам решает и сам нажимает кнопку Обновить, когда ему нужно.


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//ADO-MSSQL-Синхронизация-сервер-клиент.-id5249c276ae20156029000000#findElement_E7045_524a72daae20151f1c00024f_0

Автор: Чучмек 2.10.2013, 11:27
Вопрос о наличии стандартных средств и не более.

Автор: AndreyZ53 24.10.2013, 17:04
Здравствуйте! У меня такой же вопрос по этому поводу? как сделать! У меня установлен модуль заявителя на 50 компьютерах. Они делаю заявки, в модуле исполнитель поступают заявки (на других компьютерах), они их их принимают и в модуле заявителе должно отобразиться, что заявка выполнена или отклонена.
Мне придется чтоли каждый раз делать запрос (на таймере), например через 30 минут? потому что клиенты не будут мониторить и жать на кнопку обновить постоянно
Как мне поступить в данной ситуации, подскажите пожалуйста!

Автор: Чучмек 25.10.2013, 02:05
Одно из решений - дополнительная таблица, в которую через триггер пишутся id измененных записей (плюс время изменения, плюс сортировка по времени). 
По таймеру выбираются записи из дополнительной таблицы. По этой выборке обновляются уже загруженные данные. Но это актуально, если объем данных исчисляется тысячами-миллионами записей.
Если несколько десятков - проще обновить всю таблицу.   

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)