Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновление отображения у нескольких клиентов БД [D6, IB5.x]


Страницы:   1 2

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]

И что же делать в таком случае?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо