Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
SqlCommand Можно настроить создание уведомления при изменении данных после его получения с сервера, а результирующий набор будет отличаться, если запрос был выполнен снова. Это полезно для сценариев, в которых требуется использовать пользовательские очереди уведомлений на сервере или если не требуется поддерживать динамические объекты.
Создание запроса на уведомление
Можно использовать объект SqlNotificationRequest для создания запроса уведомления, привязав его к объекту SqlCommand. После создания запроса объект SqlNotificationRequest больше не нужен. Вы можете запросить очередь для любых уведомлений и ответить соответствующим образом. Уведомления могут появляться, даже если приложение выключено и затем снова запущено.
При выполнении команды с соответствующим уведомлением все изменения в исходном результирующем наборе отправляют сообщение в очередь SQL Server, настроенную в запросе на уведомление.
Как провести опрос очереди SQL Server и интерпретировать сообщение, относящееся к приложению. Приложение отвечает за опрос очереди и реагирование на содержимое сообщения.
Замечание
При использовании запросов SqlDependencyуведомлений SQL Server создайте собственное имя очереди вместо использования имени службы по умолчанию.
На стороне клиента для SqlNotificationRequest нет новых элементов безопасности. Это в первую очередь функция сервера, и сервер создал специальные привилегии, которые пользователи должны иметь, чтобы запросить уведомление.
Пример
В следующем фрагменте кода показано, как создать SqlNotificationRequest и связать его с ним SqlCommand.
' Assume connection is an open SqlConnection.
' Create a new SqlCommand object.
Dim command As New SqlCommand( _
"SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", connection)
' Create a SqlNotificationRequest object.
Dim notificationRequest As New SqlNotificationRequest()
notificationRequest.id = "NotificationID"
notificationRequest.Service = "mySSBQueue"
' Associate the notification request with the command.
command.Notification = notificationRequest
' Execute the command.
command.ExecuteReader()
' Process the DataReader.
' You can use Transact-SQL syntax to periodically poll the
' SQL Server queue to see if you have a new message.
// Assume connection is an open SqlConnection.
// Create a new SqlCommand object.
SqlCommand command=new SqlCommand(
"SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", connection);
// Create a SqlNotificationRequest object.
SqlNotificationRequest notificationRequest=new SqlNotificationRequest();
notificationRequest.id="NotificationID";
notificationRequest.Service="mySSBQueue";
// Associate the notification request with the command.
command.Notification=notificationRequest;
// Execute the command.
command.ExecuteReader();
// Process the DataReader.
// You can use Transact-SQL syntax to periodically poll the
// SQL Server queue to see if you have a new message.