![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление отображения у нескольких клиентов БД [D6, IB5.x]
Fligh © (2003-02-20 09:51:00)Вопрос уже звучал, однако, хотелось бы повторить: Как, кроме переоткрытия IBQuery заставить программу отображать измененные данные в DBGrid и других компонентах у пользователя, произведшего изменения, и у пользователей, подключенных в БД?
Т.е., можно ли избежать последовательности
IBQuery.DisableControls;
IBQuery.Close;
IBQuery.Open;
IBQuery.EnableControls;
во всехзапущенных копиях приложения?
Fligh (2003-02-20 16:37:00) [1]> Johnmen
Видимо, для синхронизации
> Дмитрий Баранов
Вроде БОЛВАНА в старом польском преферансе???
Johnmen (2003-02-20 16:12:00) [2]Выключил...:))
Просто хотелось обратить твое внимание на вопрос.
Для реализации механизма синхронизации в данном случае твое предложение излишне. Т.к. в IB есть средство для этого...
Дмитрий Баранов (2003-02-20 15:46:00) [3]Вылючите дурака :-) В ТОМ ЧИСЛЕ и для реализации нормального механизма синхронизации.
Johnmen (2003-02-20 14:54:00) [4]>Дмитрий Баранов © (20.02.03 14:46)
>Для этого существуют ....
Для чего для этого ?
Дмитрий Баранов (2003-02-20 14:46:00) [5]Для этого существуют трехзвенки с механизмом оповещений. Добавилась запись - сервер обежал всех клиентов, которые имели честь к нему подключиться, возбудил событие. В параметрах этого события можно передавать все, что угодно - от идентификатора вставленной/обновленной/удаленной записи до интерфейсного указателя на объект, инкапсулирующий какую-то сущность. Клиент же теперь вправе дернуть сервер и получить ОДНУ-ЕДИНСТВЕННУЮ запись по полученному идентификатору (или поместить в себя полученный указатель... в общем, в зависимости от фантазии)
Reindeer Moss Eater (2003-02-20 14:40:00) [6]"Видны" - значит изменения могут быть прочитаны.
Если никто не читает данные, то это не значит, что они не видны.
Reindeer Moss Eater (2003-02-20 14:34:00) [7]Fligh ©
Мы про разные вещи говорим. TIL может быть такой, что и переоткрытие не поможет.
Fligh (2003-02-20 14:11:00) [8]> Reindeer Moss Eater
В том-то и дело, что БЕЗ переоткрывания они не видят изменений, вносимых пользователями приложения в БД, позволяет им TIL, или нет... :-)
passm (2003-02-20 13:03:00) [9]Fligh © (20.02.03 12:25)> Обычное переоткрытие запроса, может, проще? ;))
Reindeer Moss Eater (2003-02-20 12:51:00) [10]Но таблицы БД обновляются всеми пользователями приложения и они должны видеть изменения, проведенные другим пользователем.
Они и так видят их, если TIL позволяет.
Johnmen (2003-02-20 12:46:00) [11]>Для этого, конечно подойдет и широковещательное сообщение по TCPSock.
Зачем это ???
см. (20.02.03 11:41)
Fligh (2003-02-20 12:25:00) [12]> passm
Я тоже об этом думал. Но таблицы БД обновляются всеми пользователями приложения и они должны видеть изменения, проведенные другим пользователем. Вот где вопрос. Для этого, конечно подойдет и широковещательное сообщение по TCPSock... Но это усложнение приложения...
passm (2003-02-20 12:18:00) [13]Смех смехом, а мне не так давно пришлось этим заняться. По требованию заказчика. Пришлось реализовать обновление по таймеру. Благо только на журналах, которые явным образом не редактируются.
Fligh (2003-02-20 11:59:00) [14]> Reindeer Moss Eater
Нет, эти сеты все закрыты, но же их иногда открывать приходится.
> Anatoly Podgoretsky
Придется самому заниматься уменьшением трафика сети и удовлетворением запросов пользователей.
Anatoly Podgoretsky (2003-02-20 11:51:00) [15]Иначе пользователи или системный администратор этим займутся :-)
Reindeer Moss Eater (2003-02-20 11:45:00) [16]Всегда хотелось узнать, чего хотят добиться этим.
Снижения нагрузки на сеть, или у людей просто все датасеты открыты еще в design time.
PS strong offtopic
Sergey13 (2003-02-20 11:45:00) [17]2Fligh © (20.02.03 11:40)
>И что же делать в таком случае?
С чего я и начал - рвать волосы на бороде. 8-)
Anatoly Podgoretsky (2003-02-20 11:45:00) [18]Правда жалко пользователей, сеть бог с ней путь гробится, а они то в чем виноваты.
Johnmen (2003-02-20 11:41:00) [19]Если уж так хочется реализовать механизм обновления без передергивания запроса, то можно посмотреть в сторону генератора событий POST_EVENT.
Fligh (2003-02-20 11:40:00) [20]И что же делать в таком случае?