Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A SqlCommand pode ser configurado para gerar uma notificação quando os dados mudam depois de terem sido recolhidos do servidor e o conjunto de resultados seria diferente se a consulta fosse executada novamente. Isto é útil em cenários em que queres usar filas de notificação personalizadas no servidor ou quando não queres manter objetos ativos.
Criação do pedido de notificação
Pode usar um SqlNotificationRequest objeto para criar o pedido de notificação, vinculando-o a um SqlCommand objeto. Uma vez criado o pedido, já não precisa do SqlNotificationRequest objeto. Pode consultar a fila para quaisquer notificações e responder adequadamente. Notificações podem ocorrer mesmo que a aplicação seja desligada e posteriormente reiniciada.
Quando o comando com a notificação associada é executado, quaisquer alterações ao conjunto de resultados originais ativam o envio de uma mensagem para a fila do SQL Server configurada no pedido de notificação.
A forma como consultas a fila do SQL Server e interpretas a mensagem é específica para a tua aplicação. A aplicação é responsável por sondar a fila e reagir com base no conteúdo da mensagem.
Observação
Ao usar pedidos de notificação SQL Server com SqlDependency, crie o seu próprio nome de fila em vez de usar o nome padrão do serviço.
Não existem novos elementos de segurança do lado do cliente para SqlNotificationRequest. Isto é principalmente uma funcionalidade do servidor, e o servidor criou privilégios especiais que os utilizadores devem ter para solicitar uma notificação.
Example
O seguinte fragmento de código demonstra como criar um SqlNotificationRequest e associá-lo a um SqlCommand.
// 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.