Share via


Mise à jour d'un abonnement

Utilisez la méthode Update de la classe Subscription pour modifier les abonnements existants à une application Notification Services. Vous accédez à un objet d'abonnement individuel par l'ID d'abonnement qui est déterminé par Notification Services lors de la création de l'abonnement ou, plus probablement, en effectuant une itération dans les abonnements de l'abonné à l'aide d'un objet SubscriptionEnumeration.

Les exemples ci-dessous montrent comment mettre à jour un abonnement à l'aide de code managé et de Microsoft Visual Basic Scripting Edition (VBScript) pour illustrer COM Interop.

Exemple de code managé

L'exemple suivant montre comment obtenir un abonnement spécifique à partir d'une énumération d'abonnement, puis comment mettre à jour l'abonnement.

Si vous développez une interface utilisateur, vous pouvez obtenir des valeurs des zones de texte et de liste et non pas des chaînes codées de manière irréversibles, illustré ci-dessous. Pour permettre à un abonné de sélectionner un abonnement, vous pouvez remplir une zone de liste avec les identificateurs d'abonnement retournés de l'énumération d'abonnement. Vous autorisez ensuite l'abonné à sélectionner un abonnement, à modifier les valeurs de champ, puis à mettre à jour l'abonnement.

// 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();

Exemple COM Interop

L'exemple VBScript suivant illustre l'utilisation de la méthode SetFieldValue de la classe Subscription pour définir la valeur des champs d'abonnement spécifiques à l'application :

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."

Voir aussi

Concepts

Création d'un objet d'abonnement
Ajout d'un abonnement
Suppression d'un abonnement
Obtention d'informations sur le champ d'abonnement
Remplissage d'une liste de paramètres régionaux d'abonnés
Remplissage d'une liste de fuseau horaire

Autres ressources

Vue NS<SubscriptionClassName>

Aide et Informations

Assistance sur SQL Server 2005