Вопрос по sql-server – Клиент-серверное приложение базы данных: как уведомить клиентов об изменении данных?

9

Можно ли узнать, когда и если содержимое определенных таблиц в базе данных изменилось? Как мой SQL Server может уведомить клиентские приложения о том, что данные были изменены другим пользователем? Как реализовать уведомления о запросах с помощью dbGo?

Нужно ли моим клиентам опрашивать базу данных, или для этого есть механизм обратного вызова?

Мой клиент - приложение Delphi сTADODataSetи мой сервер SQL Server 2005/2008, обслуживающий несколько клиентов.

@ TLama, до сих пор нет окончательного решения для TADODataSet и SQL-Server. ZigiZ
Возможный дубликатstackoverflow.com/q/9671284/960757 TLama
Этот лучшеstackoverflow.com/q/7843019/960757однако ответ все еще нет, dbGo не поддерживает уведомления о запросах. TLama
Еслиthis answer правильно, тоdbGo (ADO) does not support notifications... TLama
Вот почему я предпочитаю использовать Bold для Delphi Framework. Он обновляет клиентов автоматически при изменении базы данных. Это очень удобно. Конечно, есть много других возможностей, которые ускоряют разработку. Roland Bengtsson

Ваш Ответ

2   ответа
1

вам придется создать свой собственный "средний уровень" сделать это. Самый простой способ - опросить сервер. Более сложным решением является создание собственного «среднего уровня». сервер, который опрашивает базу данных и отправляет уведомления клиентам (с вашим собственным клиентским подключением).

Средним решением является наличие отдельного клиента на сервере для опроса таблиц, которые вам нужны, чтобы «посмотреть». и напишите «флаги уведомлений»; в другую таблицу базы данных, которая может быть опрошена клиентами. По крайней мере, таким образом клиенты могут опрашивать простую таблицу с минимальными данными, в которых перечислены изменения, которые затем могут быть прочитаны другим запросом выбора. Гораздо меньше усилий со стороны клиентов.

Error: User Rate Limit Exceeded
6

Delphi dbGo управление не поддерживаетQuery Notificationsлибо опросите базу данных, либо попробуйте проверить, например, некоторые из следующих:

WMI Provider for Server Events - MSSQL Service Broker DA-SOFT AnyDAC TADEventAlerter component - Query Notifications mechanism Devart SDAC TMSChangeNotification component - Query Notifications mechanism

Похожие вопросы