Taal
Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u een melding wilt ontvangen wanneer de queryresultaten worden gewijzigd, configureert u de SqlCommand met een meldingsaanvraag. Gebruik notificatieaanvragen voor aangepaste serverwachtrijen of wanneer u geen live afhankelijkheidsobjecten wilt onderhouden.
De meldingsaanvraag maken
Maak het SqlNotificationRequest-object en wijs het toe aan de Notification-eigenschap van de opdracht voordat u het uitvoert. Nadat de server de aanvraag heeft geregistreerd, hoeft u het aanvraagobject niet te behouden. Voer query's uit op de wachtrij voor meldingen en reageer zoals uw toepassing vereist. Meldingen kunnen binnenkomen terwijl de toepassing is afgesloten en beschikbaar blijven nadat deze opnieuw is opgestart.
Wanneer de opdracht met de bijbehorende melding wordt uitgevoerd, triggeren wijzigingen van de oorspronkelijke resultatenset het verzenden van een bericht naar de SQL Server-wachtrij die is geconfigureerd in het meldingsverzoek.
Hoe u de SQL Server-wachtrij peilt en het bericht interpreteert, is specifiek voor uw toepassing. De toepassing is verantwoordelijk voor het peilen van de wachtrij en het reageren op basis van de inhoud van het bericht.
Opmerking
Wanneer u SQL Server-meldingsaanvragen gebruikt met SqlDependency, maakt u uw eigen wachtrijnaam in plaats van de standaardservicenaam te gebruiken.
Verleen gebruikers de servermachtigingen die nodig zijn om meldingen aan te vragen. De SqlNotificationRequest klasse voegt geen beveiligingsvereisten aan clientzijde toe.
Voorbeeld
Het volgende fragment maakt het SqlNotificationRequest object en koppelt het aan het SqlCommand. Installeer het Microsoft.Data.SqlClient NuGet-pakket en importeer Microsoft.Data.Sql en Microsoft.Data.SqlClient. De Options waarde verwijst naar een Service Broker-service en de database die deze host, niet de wachtrij zelf. Maak de service en wachtrij zoals beschreven in Querymeldingen inschakelen.
' 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.UserData = "NotificationID"
notificationRequest.Options = "service=ContactChangeNotifications;local database=AdventureWorks"
' 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.UserData = "NotificationID";
notificationRequest.Options = "service=ContactChangeNotifications;local database=AdventureWorks";
// 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.