Форум: "Базы";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
ВнизМожет ли MySQL 5.0.1 оповещать своих клиентов? Найти похожие ветки
← →
firebird © (2006-11-13 12:46) [0]При разработке клиент-серверной системы на базе сервера MySQL 5.0.1 возникла задача оповещения сервером всех клиентов о происходящих изменениях. Т.е., если например, один клиент добавляет запись в таблицу, то это изменение должно авмтоматически появиться у второго клиента.
В InterBase 6.0 для этого есть тригеры, которые создаются для каждой таблицы, и активируются при наступлении определенного условия, например:
create trigger BeforeInsert for table_name
active before insert
as
begin
post_event "insert_data";
end;
Данный тригер запустится, когда будет добавлена запись в таблицу table_name. При этом клиенту будет отправлен текст: insert_data.
У клиента есть компонент IBEvents. В свойстве Events этого компонента, необходимо добавить строку insert_data, тогда приложение сможет реагировать на сообщение insert_data, отсылаемое сервером. Затем в событии OnEventAlert можно указать реакцию клиента на это событие. Также необходимо установить свойство AutoRegister на True.
Вопрос: Есть ли подобный механизм для MySQL?
Использую MySQL 5.0.1, Delphi7.0 связка через MySQL OBDC 3.51 с помощью ADO.
← →
Anatoly Podgoretsky © (2006-11-13 12:57) [1]> firebird (13.11.2006 12:46:00) [0]
> один клиент добавляет запись в таблицу, то это изменение должно авмтоматически появиться у второго клиента.
А нафига оно мне надо автоматически, я в данный момент или редактирую или просматриваю в сетке, а тут ты своим автоматов, тут в самый раз хвататься за автомат. При том в реальной сети могут изменяться/добавляться сотни записей в секунду, но даже одной достаточно, чтобы тебя возненавидить.
Подобный механизм хорош для диспетчерских систем и только в информационном окне.
← →
firebird © (2006-11-13 13:11) [2]Предполагается работа 3-5 клиентов с одной таблицей. Ввод данных не будет слишком интенсивным, но он должен быть синхронным, т.е. чтобы данные повторно не вводились, а вводимые данные становились доступными всем. 2-3 клиента добавляют данные (например: готовый товар на склад), а остальные редактируют эти данные (например: помечают их как проданные или идущие на заказ). Но чтобы постоянно видеть действительное состояние склада, сервер должен при каждом изменении таблицы оповещать всех клиентов.
На InterBase это получается, хотелось бы сделать такое же с помощью MySQL, если это возможно.
← →
Johnmen © (2006-11-13 13:16) [3]
> Но чтобы постоянно видеть действительное состояние склада
Невозможно в принципе видеть "действительное" состояние.
Т.к. пока его обновляешь, он уже может измениться. См. Anatoly Podgoretsky © (13.11.06 12:57) [1]
← →
Anatoly Podgoretsky © (2006-11-13 13:51) [4]> Johnmen (13.11.2006 13:16:03) [3]
Это меньше всего меня волнует, меня волнует что же будет твориться с моим рабочим местом при таком подходе, кому понравится, когда запись будет дергаться по экрану, когда мне не дадут закончить редактирование, поскольку пришла новая и запись и набор надо обновить.
--
← →
firebird © (2006-11-13 14:04) [5]Алгоритм обновления данных у каждого клиента будет таким, чтобы не мешать выполнению основной работы, и сейчас он второстепенен. Вообще для клиента возможность автоматического обновления не является жестко заданной, он может её даже отключить. Меня интересует сама возможность осуществления такого механизма оповещения.
Этот механизм крайне необходим для клиента, который выполняет контроль движения товаров. Этот контролер ничего не добавляет, не редактирует и не удаляет, но для него необходимо оперативно выводить самые последние изменения, и именно этого клиента сервер должен оповещать. Само оповещение оформленно в виде графика. Мне нужно получить фактическое количество товаров на определенный момент времени.
← →
Sergey13 © (2006-11-13 14:07) [6]> [5] firebird © (13.11.06 14:04)
Непонятно, чем занимется этот контролер, но может все таки лучше ему кнопку зворовую нарисовать для освежения инфы. А то он спать будет, а сервер кряхтеть. 8-)
← →
ANB © (2006-11-13 14:19) [7]
> кнопку зворовую нарисовать для освежения инфы. А то он спать
> будет, а сервер кряхтеть. 8-)
Тока не давать поставить на нее фокус ввода. А что нибудь тяжелое на клавишу поставит и опять будет спать.
Автору - такую фичу я видел только у IB и еще с некоторым геммором можно сделать в оракле.
← →
Sergey13 © (2006-11-13 14:27) [8]> [7] ANB © (13.11.06 14:19)
> и еще с некоторым геммором можно сделать в оракле.
А в чем гемор-то там? Я не делал, но вроде нет там проблем. Особенно через DOA (видел на ней реализацию, которую впоследствии зарубил 8-).
← →
ANB © (2006-11-13 14:35) [9]
> Sergey13 © (13.11.06 14:27) [8]
Там гранты на какой то пакет давать надо. В общем и весь геморр. :)
Кстати, в одаке смартрефреш встроен прямо в компоненты. Вообще делать ничего не надо - только свойство врубить и гранты дать.
← →
Anatoly Podgoretsky © (2006-11-13 14:35) [10]> firebird (13.11.2006 14:04:05) [5]
> Алгоритм обновления данных у каждого клиента будет таким, чтобы не мешать выполнению основной работы
Так это же полное отсутствие автоматического обновления. К чему тебя и призываем.
--
← →
Anatoly Podgoretsky © (2006-11-13 14:36) [11]> firebird (13.11.2006 14:04:05) [5]
А зачем тебе знать количество метл, если ты сейчас работаешь с совками?
--
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c