Форум: "Базы";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];
ВнизРабота с Interbase Найти похожие ветки
← →
Alexandr (2002-03-28 10:12) [40]тогда надо исходники в FIBplus или IBX править,что бы обновлять не текущую запись, а любую заданную.
← →
GrayMage (2002-03-28 10:18) [41]Когда-то тему обновления поднимали, как я помню ниче путного предложить никто не смог. Думал с появлением 6 Delphi что-то изменилось. А так, единственная правильная мысль в Реальном времени обновлять только самые необходимые данные, остальные только по таймеру совместно с совокупностью 5 - n эвентов или по кнопке.
← →
Alexandr (2002-03-28 10:27) [42]да ничего тут не может измениться.
Такова природа вещей
← →
kalex77 (2002-03-28 10:46) [43]А если использовать сервер приложений?
Пусть работа с БД идет через него, а он при минимальной функциональности оповещает клиента об обновлениях.
Кроме нужно подбирать уровень изоляции под свою задачу.
← →
Mad_Vad (2002-03-28 10:51) [44]Ну чего спорить то?
ib.demo.ru
Там Вы найдете все ответы на интересующие Вас вопросы по Interbase/Firebird.
← →
Fareader (2002-03-28 11:17) [45]на Ib.demo.ru был предложен вариант обновления данных на клиентах, без использование событий IB, с помощью дополнительной таблицы, в общем то нелохое решение. А у меня по таймеру обновляются данные на клиентах через каждые 5 минут и нормально, а чтобы не переоткрылось пока чего-то редактируется - выбрасываем флаг и таймер не переоткрывает dataset пока он в редакции, можно это углубить и расширить, но это дело вкуса. вы проблему раздули из ничего я полностью согласен с Alexandr`ом:
"Это не надо в 99% случаев, даже когда сначала кажется, что именно так надо". человек все равно не сможет обработать данные, которые будут ему предлагаться каждую секунду.
← →
Alexandr (2002-03-28 11:21) [46]на fibplus.com.ua такая статья
а в остальном согласен
← →
Vladimir_Shk (2002-03-28 12:06) [47]Вообще я так думаю, данная проблема решается через использование ADO и ServerCursor - Dynamic. Тогда на каждой машине данные будут актуальными. Хотя сами они конечно не перерисовываются, а обновляются при Dataset.Refresh или просто пролистывании содержимого экрана.
← →
MAxiMum (2002-03-28 13:14) [48]Ну что касается лично меня, то у меня клиентов может и не быть вовсе, а может и 3-4 максимум. Реально - 1-2. Думаю, если переоткрывать всё при обновлении, ничего с ними не случится.
Другое дело, что действительно, переоткрытие может быть плохим помощником, когда пользователь редактирует данные.
Кстати, я придумал, как можно обновлять данные только на всех клиентах, кроме того, кто сделал изменения: послыать сообщение типа:POST_TABLENAME_COMPNAME
. Тогда по имени я смогу определить тип события, имя таблицы и имя компьютера.
А зачем нужно BDE? Я лично без него работаю. Связь без алиасов через IBDatabase.
← →
GrayMage (2002-03-28 14:04) [49]Я не говорил что нужно BDE. Я говорю про то, что BDE таскает по сети всю базу, и при обновлении скажем одной строки, как, повторюсь я где-то слышал, BDE должна обновлять тот же самый набор перечитыванием всей базы. И делает она это сравнительно быстро. То есть, теоретически, при клиент-серверном подходе, скорость даже при обновлении не должна падать если грамотно подойти к организации эвентов, Query, и использованию многопоточности.
← →
MAxiMum (2002-03-28 14:10) [50]Конечно, в большом приложении, да, нужно грамотно подходить к организации событий. Но когда клиент - один-два человека. Я считаю это ненужным. Просто обновление после редактирования.
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.006 c