Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dá SqlCommand se nakonfigurovat tak, aby vygenerovala oznámení, když se data po načtení ze serveru změnila a sada výsledků by se v případě opětovného spuštění dotazu změnila. To je užitečné ve scénářích, kdy chcete na serveru používat vlastní fronty oznámení nebo když nechcete udržovat živé objekty.
Vytvoření žádosti o oznámení
Objekt můžete použít SqlNotificationRequest k vytvoření požadavku na oznámení tím, že ho provážete s objektem SqlCommand . Po vytvoření požadavku už objekt nepotřebujete SqlNotificationRequest . Frontu můžete dotazovat na všechna oznámení a odpovídajícím způsobem reagovat. K oznámením může dojít i v případě, že je aplikace vypnutá a následně se restartuje.
Při spuštění příkazu s přidruženým notifikací jakékoli změny v původní sadě výsledků spustí odeslání zprávy do fronty SQL Serveru, jež byla nakonfigurována v žádosti o oznámení.
Jak dotazujete frontu SQL Serveru a jak interpretujete zprávu, je specifické pro vaši aplikaci. Aplikace odpovídá za průzkum fronty a reaguje na základě obsahu zprávy.
Poznámka:
Pokud používáte dotazy na oznámení SQL Serveru s SqlDependency, vytvořte si vlastní název fronty místo používání výchozího názvu služby.
Neexistují žádné nové prvky zabezpečení na straně klienta pro SqlNotificationRequest. Jedná se primárně o funkci serveru a server vytvořil speciální oprávnění, která uživatelé musí mít, aby mohli požádat o oznámení.
Example
Následující fragment kódu ukazuje, jak vytvořit SqlNotificationRequest a přidružit ho k .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.