Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.009 c
9-15383
BJValentine
2002-08-05 11:44
2003.02.06
Первый блин комом


1-15662
_vitek_
2003-01-25 02:56
2003.02.06
Random глючит...


14-15834
Новый на этоим форуме
2003-01-22 17:03
2003.02.06
Прелести php


14-15860
Ketmar
2003-01-19 15:09
2003.02.06
One Writer Multiple Readers


14-15928
Ketmar
2003-01-21 16:39
2003.02.06
чем бы таким очень маленьким и халявным просматривать .ps?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский