Форум: "Базы";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизОбновление отображения у нескольких клиентов БД Найти похожие ветки
← →
Fligh (2003-02-20 09:51) [0]Вопрос уже звучал, однако, хотелось бы повторить: Как, кроме переоткрытия IBQuery заставить программу отображать измененные данные в DBGrid и других компонентах у пользователя, произведшего изменения, и у пользователей, подключенных в БД?
Т.е., можно ли избежать последовательности
IBQuery.DisableControls;
IBQuery.Close;
IBQuery.Open;
IBQuery.EnableControls;
во всех запущенных копиях приложения?
← →
Sergey13 (2003-02-20 10:36) [1]Ну, можно попробовать выдрать волос из бороды (если есть) и/или надо знать магическое заклинание. 8-)
← →
Fligh (2003-02-20 10:39) [2]Не понял юмора...
← →
Reindeer Moss Eater (2003-02-20 10:44) [3]Что бы клиент увидел данные, лежащие на сервере, данные эти надо у сервера запросить. Делается это запросом SELECT.
← →
Reindeer Moss Eater (2003-02-20 10:45) [4]Если на сервере данные обновились, их надо запросить снова.
Делается это запросом SELECT.
← →
Anatoly Podgoretsky (2003-02-20 10:55) [5]Этого можно избежать последовательности если убрать выделенные строки
IBQuery.DisableControls;
IBQuery.Close;
IBQuery.Open;
IBQuery.EnableControls;
← →
Fligh (2003-02-20 10:59) [6]Ладно, МАСТАКИ. Все, что вы говорите, я и сам знаю. Спасибо всем! Вопрос снимается.
← →
Reindeer Moss Eater (2003-02-20 11:01) [7]Знаешь, но надеешся на чудо.
А между тем школьный курс физики отвечает на твой вопрос сполна.
← →
Fligh (2003-02-20 11:03) [8]Знать, не дорос... Бывает...
← →
Anatoly Podgoretsky (2003-02-20 11:09) [9]Зачем же спрашивал то, все таки надежда на чудо?
← →
Fligh (2003-02-20 11:11) [10]Ну, в глубине души на неизвестные возможности IBQuery в смысле AutoRefresh...
← →
Anatoly Podgoretsky (2003-02-20 11:21) [11]Что это меняет, все равно данные надо запрашивать, только при этом будет еще и перегрузка сети и сервера.
← →
Fligh (2003-02-20 11:31) [12]У меня и так по 10 000 записей передается... Надо ограничивать условиями, видимо...
← →
Anatoly Podgoretsky (2003-02-20 11:38) [13]Вот и теперь помножь это на количество компонент, а результат на количество пользователей и после этого представь, что вся эта работа сделана напрасно.
← →
Fligh (2003-02-20 11:40) [14]И что же делать в таком случае?
← →
Johnmen (2003-02-20 11:41) [15]Если уж так хочется реализовать механизм обновления без передергивания запроса, то можно посмотреть в сторону генератора событий POST_EVENT.
← →
Anatoly Podgoretsky (2003-02-20 11:45) [16]Правда жалко пользователей, сеть бог с ней путь гробится, а они то в чем виноваты.
← →
Reindeer Moss Eater (2003-02-20 11:45) [17]Всегда хотелось узнать, чего хотят добиться этим.
Снижения нагрузки на сеть, или у людей просто все датасеты открыты еще в design time.
PS strong offtopic
← →
Sergey13 (2003-02-20 11:45) [18]2Fligh © (20.02.03 11:40)
>И что же делать в таком случае?
С чего я и начал - рвать волосы на бороде. 8-)
← →
Anatoly Podgoretsky (2003-02-20 11:51) [19]Иначе пользователи или системный администратор этим займутся :-)
← →
Fligh (2003-02-20 11:59) [20]> Reindeer Moss Eater
Нет, эти сеты все закрыты, но же их иногда открывать приходится.
> Anatoly Podgoretsky
Придется самому заниматься уменьшением трафика сети и удовлетворением запросов пользователей.
← →
passm (2003-02-20 12:18) [21]Смех смехом, а мне не так давно пришлось этим заняться. По требованию заказчика. Пришлось реализовать обновление по таймеру. Благо только на журналах, которые явным образом не редактируются.
← →
Fligh (2003-02-20 12:25) [22]> passm
Я тоже об этом думал. Но таблицы БД обновляются всеми пользователями приложения и они должны видеть изменения, проведенные другим пользователем. Вот где вопрос. Для этого, конечно подойдет и широковещательное сообщение по TCPSock... Но это усложнение приложения...
← →
Johnmen (2003-02-20 12:46) [23]>Для этого, конечно подойдет и широковещательное сообщение по TCPSock.
Зачем это ???
см. (20.02.03 11:41)
← →
Reindeer Moss Eater (2003-02-20 12:51) [24]Но таблицы БД обновляются всеми пользователями приложения и они должны видеть изменения, проведенные другим пользователем.
Они и так видят их, если TIL позволяет.
← →
passm (2003-02-20 13:03) [25]Fligh © (20.02.03 12:25)> Обычное переоткрытие запроса, может, проще? ;))
← →
Fligh (2003-02-20 14:11) [26]> Reindeer Moss Eater
В том-то и дело, что БЕЗ переоткрывания они не видят изменений, вносимых пользователями приложения в БД, позволяет им TIL, или нет... :-)
← →
Reindeer Moss Eater (2003-02-20 14:34) [27]Fligh ©
Мы про разные вещи говорим. TIL может быть такой, что и переоткрытие не поможет.
← →
Reindeer Moss Eater (2003-02-20 14:40) [28]"Видны" - значит изменения могут быть прочитаны.
Если никто не читает данные, то это не значит, что они не видны.
← →
Дмитрий Баранов (2003-02-20 14:46) [29]Для этого существуют трехзвенки с механизмом оповещений. Добавилась запись - сервер обежал всех клиентов, которые имели честь к нему подключиться, возбудил событие. В параметрах этого события можно передавать все, что угодно - от идентификатора вставленной/обновленной/удаленной записи до интерфейсного указателя на объект, инкапсулирующий какую-то сущность. Клиент же теперь вправе дернуть сервер и получить ОДНУ-ЕДИНСТВЕННУЮ запись по полученному идентификатору (или поместить в себя полученный указатель... в общем, в зависимости от фантазии)
← →
Johnmen (2003-02-20 14:54) [30]>Дмитрий Баранов © (20.02.03 14:46)
>Для этого существуют ....
Для чего для этого ?
← →
Дмитрий Баранов (2003-02-20 15:46) [31]Вылючите дурака :-) В ТОМ ЧИСЛЕ и для реализации нормального механизма синхронизации.
← →
Johnmen (2003-02-20 16:12) [32]Выключил...:))
Просто хотелось обратить твое внимание на вопрос.
Для реализации механизма синхронизации в данном случае твое предложение излишне. Т.к. в IB есть средство для этого...
← →
Fligh (2003-02-20 16:37) [33]> Johnmen
Видимо, для синхронизации
> Дмитрий Баранов
Вроде БОЛВАНА в старом польском преферансе???
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.009 c