я хочу создать немного приложения, которое открывается уведомление о лотке (или всплывающее окно тоста или что-то) каждый раз, когда обновление или вставляет вход в определенную таблицу в базу данных SQL-сервера.
Каков самый простой способ сделать это, поскольку я не хочу опрашивать если возможный?
Уведомления о запросах . Это функция 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
}
});
Расширенные хранимые процедуры - это то, о чем я подумал в первую очередь тоже, и, вероятно, это решение, которое я бы использовал, если бы я хотел запустить приложение для мониторинга на самом SQL Server.Но я предполагаю, что это, вероятно, не так.
Я бы посоветовал использовать MSMQ в качестве промежуточного уровня, так как в наши дни он поставляется практически со всеми версиями Windows и более или менее приспособлен для такого рода вещей. Итак, пройдя уровни, здесь у вас есть:
Здесь есть образец кода для доступа к MSMQ из SQL Server: http://www.codeproject.com/KB/database/SqlMSMQ.aspx
Вы можете запустить расширенную хранимую процедуру , которая уведомит ваш лоток.
Может, эта ссылка лучше.