|
|
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
Вот стал вопрос ребром: Нужно автоматически определить(программно) изменились ли данные в БД. То-есть данные обновились, возбудилось событие и клиентское приложение получило уведомление. Кто как реализовывал? PS: Локалка или Инет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 19:14:32 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
MAcKZloy,смотрите в сторону хранимых функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 20:23:51 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
MAcKZloy, смотрите не в сторону, а прямо. http://www.oracle.com/technology/oramag/oracle/06-mar/o26odpnet.html http://msdn.microsoft.com/en-us/library/ms166495%28SQL.90%29.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 20:55:53 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
Спасибо за наводку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 23:25:24 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
MAcKZloyСпасибо за наводку. Во точно увели. Notification - это как уже оповестить, а не как событие поймать. В СУБД для таких оказий с данными в таблицах существуют триггеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 09:58:51 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
MAcKZloy wrote: > Нужно автоматически определить(программно) изменились ли данные в БД. > То-есть данные обновились, возбудилось событие и клиентское приложение > получило уведомление. Кто как реализовывал? Это зависит от СУБД. Вообще, в клиент-серверных архитектурах такое решение в принципе чуждо, потому что клиент всегда активен, а сервер - пассивен. А тут нужно, чтобы сервер стал клиентом, и наоборот. Некоторые СУБД реализуют так называемые EVENT-ы, но их чтобы слушать, обычно нужно отдельное соединение к БД. Ну и эффективность в общем почти равнозначна периодическому перезапросу специальной записи в специальной маленькой табличке, что где-то что-то поменялось. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:22:44 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
Спасибо, буду думать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2009, 22:01:02 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
А почему бы не socket ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2009, 08:05:02 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
Т.е. изменилось: клиент, на котором произошло изменение отправляет сообщение на сервер, а серверная программа рассылает всем (или избранным) пакет, да еще и говорит что именно изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2009, 08:06:29 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
MAcKZloy..данные обновились, возбудилось событие и клиентское приложение получило уведомление. Кто как реализовывал? Судя по всему, данные хранятся на сервере. Сервер так и называется сервером, что сам ничего никогда не возбуждает, а делает всё только по запросу с клиента. Т.о., решения на поставленный вопрос нет. Можно, правда, использовать таймер на клиенте. Так многие поступают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2009, 14:03:03 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
По таймеру не очень хорошо, могут же быть большие объемы данных и одновременно нужна быстрая реакция. Поэтому socket-ы рулят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 14:18:22 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
Делал так - каждая софтина регилась на сервере в специальную табличку при запуске (писались данные о том, что за софтина и откуда запущена). После изменения данных та софтина, которая что-то меняла, в отдельном потоке по списку регистрации делает рассылку сообщений всем запущенным экземлпярам, а уж они определяют работают ли они с указанным справочником, видима или нет указанная запись и т.п. Если нет необходимости именно On-Line реакции приложений - можно завести доп. поле (уникальный букмарк), который меняется при каждой модификации триггером и, если пользователь лезет менять данные с несовпадающим букмарком - думать что делать ______________________________ Чем чаще программист жалуется на чужой soft, тем хуже он делает свой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2009, 07:14:17 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
ToshЕсли нет необходимости именно On-Line реакции приложений - можно завести доп. поле (уникальный букмарк), который меняется при каждой модификации триггером Мне кажется туда лучше записывать дату/время модификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 18:27:02 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
Можно использовать различные вариации message queue. В MS SQL в частности есть Service Broker - на котором можо сдеать то, что Вы хотите и многое другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2009, 12:10:32 |
|
||
|
Реагирование на обновление данных в БД
|
|||
|---|---|---|---|
|
#18+
ShSerge Судя по всему, данные хранятся на сервере. Сервер так и называется сервером, что сам ничего никогда не возбуждает, а делает всё только по запросу с клиента. Ну что за ерунда! По запросу клиента или по таймеру сервер возбуждает событие - отправляет запрос на другой сервер и т.д. СУБД вообще говоря не являются чистыми серверами. В них есть много разных функций. В клиентском приложении также вполне может быть слушающий сокет, который принимает сигналы от сервера БД и информирует пользователя. В БД для этих целей предусмотрены триггеры. Однако нужно учесть, что триггер срабатывает по факту изменения записей, а сами изменения становятся видимыми, когда транзакция фиксируется. Так что просто тупо разослать IP пакет наверное не выйдет - получив его приложение ломанётся в БД, а там ещё никаких изменений не видно. Неплохим средством передать сигнал клиенту является очередь БД. Но вообще говоря в этой области стандарта нет, выбор хорошего решения сильно зависит от конкретной СУБД, а плохих нам не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2009, 23:21:39 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36355639&tid=1343994]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
183ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 494ms |

| 0 / 0 |
