Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-39211
Raph
2003-02-21 21:12
2003.03.13
Таблицы


3-39186
NiBL
2003-02-20 13:11
2003.03.13
IBase


3-39210
trans
2003-02-21 17:35
2003.03.13
Зачем проге сетевой диск?


14-39529
Ruf
2003-02-24 10:15
2003.03.13
заблокировать инет


14-39469
kofman
2003-02-27 00:05
2003.03.13
На скольно юридически законно покупать программу по почте?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский