Udostępnij przez


Wykonywanie polecenia Sql Za pomocą polecenia SqlNotificationRequest

Pobieranie ADO.NET

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.

Dalsze kroki