Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Można SqlCommand skonfigurować do generowania powiadomienia, gdy dane zmieniają się po pobraniu z serwera, a zestaw wyników będzie inny, jeśli zapytanie zostało wykonane ponownie. Jest to przydatne w scenariuszach, w których chcesz używać niestandardowych kolejek powiadomień na serwerze lub gdy nie chcesz obsługiwać obiektów na żywo.
Tworzenie żądania powiadomienia
Możesz użyć obiektu SqlNotificationRequest do utworzenia żądania powiadomienia poprzez powiązanie go z obiektem SqlCommand. Po utworzeniu żądania nie potrzebujesz już obiektu SqlNotificationRequest. Możesz sprawdzić kolejkę pod kątem wszelkich powiadomień i odpowiednio zareagować. Powiadomienia mogą wystąpić nawet wtedy, gdy aplikacja zostanie zamknięta, a następnie ponownie uruchomiona.
Po wykonaniu polecenia ze skojarzonym powiadomieniem, wszelkie zmiany w oryginalnym zestawie wyników powodują wysłanie komunikatu do kolejki programu SQL Server skonfigurowanej w żądaniu powiadomienia.
Sposób sondowania kolejki programu SQL Server i interpretowania komunikatu jest specyficzny dla aplikacji. Aplikacja jest odpowiedzialna za sondowanie kolejki i reagowanie na podstawie zawartości komunikatu.
Uwaga / Notatka
W przypadku używania żądań powiadomień programu SQL Server z SqlDependency, stwórz własną nazwę kolejki, zamiast używać domyślnej nazwy usługi.
Brak nowych elementów zabezpieczeń po stronie klienta dla programu SqlNotificationRequest. Jest to przede wszystkim funkcja serwera, a serwer utworzył specjalne uprawnienia, które użytkownicy muszą posiadać, aby zażądać powiadomienia.
Example
Poniższy fragment kodu pokazuje, jak utworzyć element SqlNotificationRequest i skojarzyć go z elementem 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.