Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Вниз

Как DCOM клиенту узнать об изменениях данных на сервере/базе 


maxi   (2001-10-22 16:17) [0]

Как заставить клиента DCOM автоматом обновлять данные, если они изменились на сервере/базе? Имеется метод Refresh у компонента ClientDataSet, но он неудобный - надо самому вызывать.
Есть предложения ?



maxi   (2001-10-22 16:43) [1]

Ребята, ну не уж-то не поможете, а ? Я уже 2 дня долбаюсь.



maxi   (2001-10-22 16:55) [2]

Ну кто-нить то ответит?



sedoy   (2001-10-22 17:41) [3]

не знаю природы изменений, но представляю так
на сервере разбиваешь изменения на классы (либо если однотипные, то делаешь счетчик изменений). По событию (счетчик достиг определенного значения ) с сервера шлешь клиентам команду рефреш. В общем суть в том, что сервер дает команду обновления



maxi   (2001-10-23 09:18) [4]

Интересно, а как это будет выглядеть ? Хотя бы намекните, как сервер уведомляет клиента? Ведь у меня используется SocketConnectinon и технология Midas. Данные идут пакетами. Да и как вообще сервер узнает об обновлении данных ?



sedoy   (2001-10-23 16:12) [5]

все в виде рекомендации, сам с такой ситуацией не сталкивался, но возможно придется, если что получится - напиши на мыло
контроль обновления данных возлагается на клиента(при изменении некоторого поля возводится флаг или счетчик и т.д.).
на сервере определи некий метод, в котором клиент передает серверу информацию об изменениях. сервер ведет свой учет по всем клиентам и при некотором значении принимает решение о "всеобщем обновлении".
Простейший вариант - таблица с одной строкой, которую периодически проверяет клиент.
Посмотри, что в другом сообщении сказал digitman. Пробуй...
В общем извращение, но глядя в потолок говорить трудно.



Digitman   (2001-10-23 16:23) [6]

>sedoy
Вот именно - глядя в потолок не рассуждай об извращениях)



sedoy   (2001-10-23 17:08) [7]

остроумно, но конкретных решений я пока не видел



Digitman   (2001-10-23 17:31) [8]

>sedoy
Я решал (и успешно решил) эту задачу, потому и рекомендую автору ... и не все там так уж сложно (хотя и не так уж просто) в реализации ... просто надо не полениться и изучить "потроха" BSS, TServerSocket и TSocketConnection



sedoy   (2001-10-23 17:54) [9]

спасибо за ответ. сам буду пробовать



maxi   (2001-10-24 08:57) [10]

>Digitman
А что скажешь по поводу свойства SupportCallbacks ? Я прочитал хелп на это свойство, но ни хрена не понял зачем оно нужно, а главное - как его использовать ? понял только что оно нужно для маршалинга вызовов с сервака на клиент. В этой задаче оно может быть использовано ?



Digitman   (2001-10-24 10:10) [11]

>maxi
Не только можно - нужно ! Но без доработки все равно не обойтись.
Чтобы понять, как его использовать, изучи TTransportThread.Execute (модуль SConnect). Транспортный поток как раз и запускается в режиме SupportCallbacks = True.




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.019 c
1-52611           StelZ                 2001-12-31 13:59  2002.01.17  
Модальная форма


3-52471           МАРАТ                 2001-12-14 15:21  2002.01.17  
Не могу открыть *.GDB


1-52596           Вадим                 2001-12-29 21:29  2002.01.17  
PROMT


3-52502           Easy                  2001-12-08 12:03  2002.01.17  
Как можно исправить запись с испорченным мемо-полем в dbf-таблице?


7-52674           UsBall                2001-09-10 00:34  2002.01.17  
Воспроизведение AVI - а если хочется ручками прокрутить????