уведомление о лотке на обновлении базы данных

я хочу создать немного приложения, которое открывается уведомление о лотке (или всплывающее окно тоста или что-то) каждый раз, когда обновление или вставляет вход в определенную таблицу в базу данных SQL-сервера.

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

7
задан leora 3 August 2010 в 13:43
поделиться

3 ответа

Уведомления о запросах . Это функция SQL Server, которая позволяет приложению подписываться на уведомления, отправляемые с сервера при изменении данных. Обычно это достигается с помощью класса SqlDependency .

Недавно я опубликовал проект LinqToCache , который позволяет добавлять уведомления на основе SqlDependency и аннулирование кеша в запросы LINQ:

var query = (from r in ctx.table select r).AsCached(
 "table", new CachedQueryOptions() {
    OnInvalidated = (sender, args) {
      // the query was invalidated, data has changed
      // refresh display or notify user
    }
 });
7
ответ дан 7 December 2019 в 01:15
поделиться

Расширенные хранимые процедуры - это то, о чем я подумал в первую очередь тоже, и, вероятно, это решение, которое я бы использовал, если бы я хотел запустить приложение для мониторинга на самом SQL Server.Но я предполагаю, что это, вероятно, не так.

Я бы посоветовал использовать MSMQ в качестве промежуточного уровня, так как в наши дни он поставляется практически со всеми версиями Windows и более или менее приспособлен для такого рода вещей. Итак, пройдя уровни, здесь у вас есть:

  1. триггеры UPDATE и INSERT для вашей конкретной таблицы, которые вызывают ...
  2. ... сборку .NET (добавленную с использованием интеграции CLR), которая ...
  3. ... помещает сообщение с описанием вставки / обновления в очередь MSMQ на сервере, которое ...
  4. ... получает ваше приложение в области уведомлений, где бы оно ни было запущено ...
  5. .. .и затем отображается.

Здесь есть образец кода для доступа к MSMQ из SQL Server: http://www.codeproject.com/KB/database/SqlMSMQ.aspx

2
ответ дан 7 December 2019 в 01:15
поделиться

Вы можете запустить расширенную хранимую процедуру , которая уведомит ваш лоток.

Может, эта ссылка лучше.

1
ответ дан 7 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

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