Aktualisieren eines Abonnements

Verwenden Sie die Update-Methode der Subscription-Klasse, um vorhandene Abonnements einer Notification Services-Anwendung zu ändern. Sie greifen auf ein einzelnes Abonnementobjekt entweder über die Abonnement-ID, die durch Notification Services beim Erstellen des Abonnements bestimmt wird, oder wahrscheinlicher durch das Iterieren durch die Abonnements des Abonnenten mithilfe eines SubscriptionEnumeration-Objekts zu.

Die nachfolgenden Beispiele zeigen, wie ein Abonnement mithilfe von verwaltetem Code und mithilfe von Microsoft Visual Basic Scripting Edition (VBScript) aktualisiert wird, um COM-Interop zu veranschaulichen.

Beispiel für verwalteten Code

Das folgende Beispiel zeigt, wie ein bestimmtes Abonnement aus einer Abonnementenumeration abgerufen und anschließend aktualisiert wird.

Wenn Sie eine Benutzeroberfläche entwickeln, können Sie Werte aus den Text- und Listenfeldern abrufen, statt hartcodierte Zeichenfolgen zu verwenden, wie nachfolgend gezeigt. Sie könnten ein Listenfeld mit den aus der Abonnementenumeration zurückgegebenen Abonnementbezeichnern auffüllen, um einem Abonnenten die Auswahl eines Abonnements zu ermöglichen. Sie würden es dann dem Abonnenten ermöglichen, ein Abonnement auszuwählen, Feldwerte zu ändern und anschließend das Abonnement zu aktualisieren.

// Create the NSInstance object.
NSInstance testInstance = new NSInstance("Tutorial");

// Create the NSApplication object.
NSApplication testApplication =
    new NSApplication(testInstance, "Weather");

// Create the Subscription object.
Subscription testSubscription =
    new Subscription(testApplication, "WeatherCity");


//Create a SubscriptionEnumeration object.
// that contains all of the subscriber's subscriptions
// in a specific subscription class
SubscriptionEnumeration testSubscriptionEnumeration = 
    new SubscriptionEnumeration(testApplication, 
        "WeatherCity", "TestUser1");

//Iterate through the subscriptions, finding the subscription
// to match. In a user interface, you would probably list the 
// subscriptions in a list box and then let the user
// alter the data for the selected subscription
foreach (Subscription subscription in testSubscriptionEnumeration)
{
    String city = subscription.GetFieldValue("City").ToString();
    Console.WriteLine(city);
    Console.WriteLine("Subscription ID: {0}", subscription.SubscriptionId);
        if (city.Equals("Shoreline"))
            testSubscription.SubscriptionId = subscription.SubscriptionId;
}

// Set all of the subscription data fields 
testSubscription["DeviceName"] = "Work e-mail";
testSubscription["SubscriberLocale"] = "en-US";
testSubscription["City"] = "Edmonds";

testSubscription.Update();

Beispiel für COM-Interop

Das folgende VBScript-Beispiel zeigt, wie die SetFieldValue-Methode der Subscription-Klasse zum Festlegen des Wertes der anwendungsspezifischen Abonnementfelder verwendet wird:

Dim testInstance, testApplication, testSubscription

const instanceName = "Tutorial"
const applicationName = "Weather"
const subscriptionClassName = "WeatherCity"

' Create the NSInstance object.
set testInstance = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.NSInstance")
testInstance.Initialize instanceName

' Create the NSApplication object.
set testApplication = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.NSApplication")
testApplication.Initialize (testInstance), applicationName

' Create the Subscription object.
set testSubscription = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.Subscription")
testSubscription.Initialize (testApplication), subscriptionClassName

' Set the subscription ID so that 
'the correct record is updated.
testSubscription.SubscriptionId = "2"

' Update the subscription record.
testSubscription.SetFieldValue "DeviceName", "Work e-mail"
testSubscription.SetFieldValue "SubscriberLocale", "en-US"
testSubscription.SetFieldValue "City", "Orlando"
testSubscription.Update

wscript.echo "Subscription updated."

Siehe auch

Konzepte

Erstellen eines Abonnementobjekts
Hinzufügen eines Abonnements
Löschen eines Abonnements
Abrufen von Abonnementfeldinformationen
Auffüllen einer Abonnentengebietsschema-Liste
Auffüllen einer Zeitzonenliste

Andere Ressourcen

NS<SubscriptionClassName>View

Hilfe und Informationen

Informationsquellen für SQL Server 2005