![]() |
|
|
![]()
|
|
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
Каким образом можно решить проблему обновления данных в программах-клиентах при многопользовательской работе с СУБД (MS SQL Server). Сейчас программа работает так: например, пользователь 1 добавил новую запись. Чтобы в остальных программах-клиентах отобразились изменения другим пользователям нужно нажать на кнопку обновить. Программой пользуются 2-3 тыс. людей, большинство из них бесит такой подход, они хотят, чтобы, например, если пользователь 1 изменил какую-то информацию, у других пользователей эти изменения отобразились автоматом без лишних телодвижений с их стороны.
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Обновляй по таймеру.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
||||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
А реже нельзя обновлять? К примеру, каждые 10 минут.
Это сообщение отредактировал(а) Данкинг - 9.1.2012, 23:10 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
Нужно сделать как в 1C. Если какой-то пользователь что-либо изменяет, изменения мнгновенно отображаются у других пользователей. Пока что вижу одно решение, реорганизовать программу из архитектуры клиент-сервер в трехзвенную и через сервер приложений делать рассылку изменений всем работающим приложениям-клиентам. Вроде автоматическое обновление в 1C реализовано также. Слышал, что есть еще варианты (через RTMP), поэтому хотелось бы их услышать.
Это сообщение отредактировал(а) NieL - 9.1.2012, 23:20 |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: нет Всего: 8 |
можно сделать маленькую табличку в которую записывать данные о времени последнего изменения и постоянно считывать оттуда это время. как время изменилось - обновляем основную таблицу.
А какой смысл рефрешить миллион записей? пользователь все равно их за всю жизнь не просмотрит |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
По идее это нормально. Иначе нагрузка на сервер и сеть будет нерельаной и они потом будут беситься ещё больше. Добавлено через 1 минуту и 10 секунд
бедные пользователи миллион записей им-то зачем на клиенте Добавлено через 3 минуты и 51 секунду
Ты видел 1С, где есть в онлайне 2000+ пользователей? Думай!!! Думай много! Добавлено через 7 минут и 58 секунд Пусть скидываются на новый сервер А самое простое - да: обновляй по таймеру. Дай пользователю самому устанавливать размер интервала. И поверь, что очень скоро они все отключат таймеры полностью. Ты не сможешь обновлять в TDataSet только пару тройку изменившихся на сервере записей. Это раз. Используй систему событий СУБД. Я не знаю, по какой причине ты скрываешь название и версию СУБД (телепаты ещё на зимних каникулах), но вот в Firebird есть система событий, например. |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |