powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Реагирование на обновление данных в БД
15 сообщений из 15, страница 1 из 1
Реагирование на обновление данных в БД
    #36329330
MAcKZloy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот стал вопрос ребром:
Нужно автоматически определить(программно) изменились ли данные в БД. То-есть данные обновились, возбудилось событие и клиентское приложение получило уведомление. Кто как реализовывал?

PS: Локалка или Инет.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36329437
mecid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MAcKZloy,смотрите в сторону хранимых функций.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36329486
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36329656
MAcKZloy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за наводку.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36330004
Фотография Пилотажный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAcKZloyСпасибо за наводку.

Во точно увели.

Notification - это как уже оповестить, а не как событие поймать.

В СУБД для таких оказий с данными в таблицах существуют триггеры.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36330913
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAcKZloy wrote:

> Нужно автоматически определить(программно) изменились ли данные в БД.
> То-есть данные обновились, возбудилось событие и клиентское приложение
> получило уведомление. Кто как реализовывал?

Это зависит от СУБД.
Вообще, в клиент-серверных архитектурах такое решение в принципе чуждо,
потому что клиент всегда активен, а сервер - пассивен. А тут нужно, чтобы
сервер стал клиентом, и наоборот.
Некоторые СУБД реализуют так называемые EVENT-ы, но их чтобы слушать,
обычно нужно отдельное соединение к БД. Ну и эффективность в общем
почти равнозначна периодическому перезапросу специальной записи в
специальной маленькой табличке, что где-то что-то поменялось.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36344630
MAcKZloy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, буду думать
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36347467
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не socket ?
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36347468
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. изменилось: клиент, на котором произошло изменение отправляет сообщение на сервер, а серверная программа рассылает всем (или избранным) пакет, да еще и говорит что именно изменилось.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36348417
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAcKZloy..данные обновились, возбудилось событие и клиентское приложение получило уведомление. Кто как реализовывал?
Судя по всему, данные хранятся на сервере. Сервер так и называется сервером, что сам ничего никогда не возбуждает, а делает всё только по запросу с клиента.
Т.о., решения на поставленный вопрос нет. Можно, правда, использовать таймер на клиенте. Так многие поступают.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36352014
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По таймеру не очень хорошо, могут же быть большие объемы данных и одновременно нужна быстрая реакция. Поэтому socket-ы рулят
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36355639
Tosh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делал так - каждая софтина регилась на сервере в специальную табличку при запуске (писались данные о том, что за софтина и откуда запущена). После изменения данных та софтина, которая что-то меняла, в отдельном потоке по списку регистрации делает рассылку сообщений всем запущенным экземлпярам, а уж они определяют работают ли они с указанным справочником, видима или нет указанная запись и т.п.
Если нет необходимости именно On-Line реакции приложений - можно завести доп. поле (уникальный букмарк), который меняется при каждой модификации триггером и, если пользователь лезет менять данные с несовпадающим букмарком - думать что делать
______________________________
Чем чаще программист жалуется на чужой soft, тем хуже он делает свой.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36362136
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ToshЕсли нет необходимости именно On-Line реакции приложений - можно завести доп. поле (уникальный букмарк), который меняется при каждой модификации триггером

Мне кажется туда лучше записывать дату/время модификации.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36381799
GYGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно использовать различные вариации message queue. В MS SQL в частности есть Service Broker - на котором можо сдеать то, что Вы хотите и многое другое.
...
Рейтинг: 0 / 0
Реагирование на обновление данных в БД
    #36387571
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge
Судя по всему, данные хранятся на сервере. Сервер так и называется сервером, что сам ничего никогда не возбуждает, а делает всё только по запросу с клиента.

Ну что за ерунда! По запросу клиента или по таймеру сервер возбуждает событие - отправляет запрос на другой сервер и т.д. СУБД вообще говоря не являются чистыми серверами. В них есть много разных функций.

В клиентском приложении также вполне может быть слушающий сокет, который принимает сигналы от сервера БД и информирует пользователя.

В БД для этих целей предусмотрены триггеры. Однако нужно учесть, что триггер срабатывает по факту изменения записей, а сами изменения становятся видимыми, когда транзакция фиксируется. Так что просто тупо разослать IP пакет наверное не выйдет - получив его приложение ломанётся в БД, а там ещё никаких изменений не видно.

Неплохим средством передать сигнал клиенту является очередь БД. Но вообще говоря в этой области стандарта нет, выбор хорошего решения сильно зависит от конкретной СУБД, а плохих нам не надо.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Реагирование на обновление данных в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]