|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Посредник обновления
Хочу спросить знатоков можно ли сделать так....
У меня несколько клиент-серверных проектов в сети под управлением MS SQL Server. Приложения коннектятся по TCP к одному серверу, но к разным базам. С целью убрать в таймерах Close - Open ADO посоветовали сделать некий 3 уровень. Посредник принимает команды от клиента и рассылает команды всем подсоединенным к БД. Например кто-то вставил-удалил в таблице, остальным высылается сообщение, при этом другие клиенты, получив его, делают close-open. Кто-нибудь слышал про такое, как можно реализовать несложно? |
#2
|
|||
|
|||
Можно, но не нужно.
Достаточно с клиента сделать запрос, который вернет тебе "контрольную сумму" для данных. Если сумма изменилась с последнего запроса - значит надо перечитать данные. В качестве "контрольной суммы" могут быть разные комбинации. Например, если у тебя для каждой записи сохраняется время ее последнего обновления, то достаточно просто вернуть max от этого поля (если оно индексированно, то этот запрос вообще мгновенно выполняется). В свое время делал для одной программы такую проверку, которая проверяла кол-во записей и сумму по одному из главных полей. Преимуществом такой схемы является то, что если у тебя идет фильтрация записей в зависимости от пользователя (права, должность и т.п.), то эту проверку можно будет "завязать" на те же параметры, что и основной запрос. Недостаток - довольно приличное кол-во мелких запросов. Как уже писал, в той системе работало довольно большое кол-во клиентов, сервер был Oracle. Никаких проблем не возникало. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
ApxaHGe1 (22.04.2016)
|