Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2011, 17:11   #1
reekoxela
Новичок
Джуниор
 
Регистрация: 18.08.2011
Сообщений: 1
По умолчанию Как оповестить клиентов СУБД об изменении данных?

Есть клиент-серверное приложение. Delphi + MySQL 5.5.9.
Как реализовать оповещение (перечитать данные) всех клиентов присоединённых к БД в данный момент времени при изменении данных в таблицах. Если один из клиентов изменил данные, у других подключенных клиентов они должны обновиться.
reekoxela вне форума Ответить с цитированием
Старый 18.08.2011, 18:35   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

обновлять по таймеру таблицы
fbus вне форума Ответить с цитированием
Старый 28.08.2011, 21:44   #3
X11
Пользователь
 
Регистрация: 20.01.2010
Сообщений: 54
По умолчанию

А У MySQL событий нет, как у Firebird?
X11 вне форума Ответить с цитированием
Старый 28.08.2011, 22:28   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Один клиент сидит и правит некую запись. На момент сразу после начала правки этот клиент видит в некоем поле, к примеру,"Вася Пупкин".

Этот клиент, к примеру, желает изменить "Вася Пупкин" на "Петя Лупкин". Пока он правит поле, некий другой клиент взял да и исправил "Вася Пупкин" на "Коля Дрюков".

Через пол-секунды, пока первый клиент все еще телится с редактированием "Васи Пупкина", еще один клиент взял да изменил это поле на "Федя Урюков"

ЧТО в результате должен увидеть первый клиент ?

Нахрен, спрашивается, вообще нужна такая расчудесная перспектива - "вышибание" у клиента СУБД "табуретки из-под ног", пока он видя тек.состояние записи телится в процессе ее визуального редактирования ?)

А еще расчудесней перспективка, когда первый клиент долго и нудно редактирует Пупкина на Лупкина, а другой клиент взял да удалил этого самого беднягу Пупкина)

Последний раз редактировалось Stilet; 29.08.2011 в 09:25.
mss вне форума Ответить с цитированием
Старый 29.08.2011, 09:27   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
обновлять по таймеру таблицы
Лучше по сокетам разослать всем команду обновления.
И еще стоит посмотреть блокируется ли запись, меняемая одним клиентом для других, ато действительно получится котовасия если клиенты друг другу мешать будут, редактируя одни и те же данные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2011, 09:31   #6
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Можно сделать запрет на редактирование и удаление уже открытой кем-либо записи. Т.е. в таблице сделай еще одно поле (прим. Editing) и при начале редактирования записи ставь в это поле цифру 1 что будет значить для других пользователей что эта запись уже редактируется и входить в нее нельзя, после окончания редактирования возвращай в это поле цифру 0
Gulik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу CRM решение/базу данных/учен клиентов/ рассмотрю варианты Transfers_Kiev Софт 1 26.04.2012 11:19
Изменении данных в ячейках в зависимости от выползающего списка adiko Microsoft Office Excel 3 27.05.2011 12:20
Как оповестить основной поток о каком-то событии в потоке (TThread)? TwiX Общие вопросы Delphi 2 11.02.2010 02:57
Ошибка выполнения sql запроса при изменении данных XATAB БД в Delphi 4 28.02.2009 15:44
Потеря данных при изменении рамера раздела Drandulet Софт 5 06.07.2008 07:52