Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

Обновление отображения у нескольких клиентов БД   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.014 c
14-39479
Fishka
2003-02-27 11:30
2003.03.13
Регистрация и разрегистрация


6-39438
NightCon
2003-01-21 12:25
2003.03.13
Обмен данными между формами IntraWeb


1-39281
Miller
2003-03-03 16:43
2003.03.13
Как выводить на экран пикселы без


3-39180
JibSkeart
2003-02-20 15:36
2003.03.13
Как узнать (подсчитать) точно траффик


1-39345
Morfey
2003-03-01 14:25
2003.03.13
RichEdit