Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизMSSQL Найти похожие ветки
← →
mate (2003-01-20 14:38) [0]Как мне сделать что бы когда несколько пользователей работают с одной базой их изменения сразу же отображались у всех, но что бы это было не заметно (по времени) для них.
← →
Reindeer Moss Eater (2003-01-20 14:39) [1]Сам понял что сказал?
← →
mate (2003-01-20 14:48) [2]Сам - то понял.
Объясняю - когда я добавляю запись в DBGrid(->DataSource->Table->DBE->MSSQL) то его после post не видно в DBGrid , если сделать
Table1.Close и Table1.Open, то она (запись) появляется, НО т.к. у меня в базе ~7000 записей то Table1.Open длится достаточно долго, как мне сделать чтобы это было значительно быстрее?
← →
Reindeer Moss Eater (2003-01-20 14:50) [3]Плохо видно понял.
Уровень изоляции транзакций DirtyRead позоволяет видеть одной транзакции неподтвержденные (это имелось ввиду под "их изменения сразу же отображались..." ?) изменения в другой. Однако не надо думать, что при этом не требуется переоткрывать наборы данных на рабочих местах, которые хотят видеть эти изменения.
← →
passm (2003-01-20 14:52) [4]mate © (20.01.03 14:48)>
> НО т.к. у меня в базе ~7000 записей то Table1.Open длится
> достаточно долго, как мне сделать чтобы это было значительно
> быстрее?
Воспользоваться Query и сократить количество записей.
← →
mate (2003-01-20 14:54) [5]Из выше приведённого я понял , что ускорить процесс "увидения" "чужих" записей я не смогу. Правильно?
← →
Reindeer Moss Eater (2003-01-20 14:54) [6]Неправильно
← →
mate (2003-01-20 14:56) [7]
> Неправильно
А как же мне тогда это сделать?
← →
Reindeer Moss Eater (2003-01-20 14:57) [8]1. Более мощный сервер
2. Более быстрый канал до сервера
3. Более мощный клиент
4. Отказ от TTable и ненужных на клиенте данных
← →
Anatoly Podgoretsky (2003-01-20 15:07) [9]Это не только будет заметно по времени, но даже и на жкране будет свистопляска, что у тебя сервер спаммер?
← →
Alex Konshin (2003-01-20 20:43) [10]Теоретически это возможно сделать с помощью трехзвенки. Но я не говорю, что это легко. Я в своем проекте это пытаюсь сделать.
У меня это возможно, так как доступ к каждой конкретной базе имеет только один узел, и все запросы идут через него, причем сами запросы - это просто имя и параметры, т.е. они описаны в неком конфиге, узел сам строит тексты запросов и, соответственно он знает какие таблицы где отображаются и изменяются. Более того, у меня есть режим открытия запроса вроде live, только у меня такой запрос реально выбирает все данные и закрывает запрос к базе (чтобы не блокировать доступ) и, далее, когда клиент запрашивает данные, работает подобно кешу. Вот именно здесь я и могу при изменении данных другим запросом вставить обновление этого кеша и нотификацию клиента. Также у меня возможна нотификация из тригеров, т.е., теоретически, можно отлавливать даже те изменения, которые сделаны в обход моей системы.
Кешированные запросы могут использоваться несколькими клиентами одновременно (только и параметры должны быть одинаковыми).
Cам не знаю когда я смогу реализовать это все в полном объеме - пишу это, можно сказать, ради развлечения. Хотя само ядро уже давно используется в реальном приложении на моем прежнем месте работы (MT Computers в Питере).
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.011 c