Вызвать метод C # изнутри триггера SQL - PullRequest
2 голосов
/ 16 августа 2011

Я нахожусь в приложении Winforms, использующем C # и Visual Studio 2010 вместе с SQL Server Management Studio 2008 R2.

Мое приложение проверяет предыдущие значения в базе данных, и если текущее добавляемое значение попадает под определенное значениедиапазон, мне нужно выполнить метод, написанный на C #, т.е. на языке хоста.Метод на самом деле отправляет электронные письма на адреса электронной почты, хранящиеся в базе данных.

Теперь проверочную часть можно легко выполнить с помощью триггера, но последний для меня хлопотен.

Можеткто-нибудь, пожалуйста, помогите мне?

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Есть несколько способов справиться с этим.

  1. Вы можете зарегистрировать запись в базе данных, которую отслеживает служба C #, и при добавлении записи она отправляет электронные письма. Это может быть своего рода служба Windows, которая запускается на таймере каждую минуту, проверяя наличие обновлений.
  2. Вы можете использовать SQL-CLR для интеграции кода C # с кодом SQL. Это требует открытия нескольких точек безопасности и встраивания двоичных файлов из вашего проекта в SQL Server. Это менее предпочтительный метод по соображениям безопасности, но он может выполнять свою работу.
2 голосов
/ 16 августа 2011

Возможно, вы захотите посмотреть База данных Mail . Это объединяет функции отправки электронной почты в SQL Server.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...