Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
3-15486
SeRZh
2003-01-20 18:18
2003.02.06
Новичок


3-15430
MAD-Sudarchikov
2003-01-18 18:03
2003.02.06
(Красноярск) Консультации по созданию БД


14-15897
Supreme
2003-01-20 19:59
2003.02.06
Вроде всё налаживается :)


1-15579
TAN
2003-01-28 17:26
2003.02.06
FileListBox и копирование


3-15459
Delph
2003-01-20 12:28
2003.02.06
По разному вставляются записи в TClientDataSet.





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