Condividi tramite


Aggiornamento di una sottoscrizione

Utilizzare il metodo Update della classe Subscription per modificare le sottoscrizioni esistenti per un'applicazione di Notification Services. Per accedere a un singolo oggetto sottoscrizione, è possibile utilizzare l'ID della sottoscrizione, determinato da Notification Services durante la creazione della sottoscrizione, o, preferibilmente, scorrere le sottoscrizioni del sottoscrittore tramite un oggetto SubscriptionEnumeration.

Gli esempi riportati di seguito illustrano come aggiornare una sottoscrizione tramite codice gestito e Microsoft Visual Basic Scripting Edition (VBScript) per applicare l'interoperabilità COM.

Esempio di codice gestito

Nell'esempio riportato di seguito viene illustrato come ottenere una sottoscrizione specifica da un'enumerazione di sottoscrizioni e quindi aggiornare tale sottoscrizione.

Se si sviluppa un'interfaccia utente, è possibile ottenere i valori dalle caselle di testo e di riepilogo, anziché dalle stringhe specificate a livello di codice indicate di seguito. Per consentire a un sottoscrittore di selezionare una sottoscrizione, è possibile popolare una casella di riepilogo con gli identificatori delle sottoscrizioni restituiti dall'enumerazione delle sottoscrizioni. È quindi possibile consentire al sottoscrittore di selezionare una sottoscrizione, modificare i valori dei campi e quindi aggiornare la sottoscrizione.

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

Esempio di interoperabilità COM

Nell'esempio di codice VBScript riportato di seguito viene illustrato come utilizzare il metodo SetFieldValue della classe Subscription per impostare il valore dei campi della sottoscrizione specifici dell'applicazione:

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

Vedere anche

Concetti

Creazione di un oggetto di sottoscrizione
Aggiunta di una sottoscrizione
Eliminazione di una sottoscrizione
Recupero di informazioni sul campo sottoscrizione
Popolamento di un elenco delle impostazioni internazionali dei sottoscrittori
Popolamento di elenco di fusi orari

Altre risorse

Vista NS<SubscriptionClassName>

Guida in linea e informazioni

Assistenza su SQL Server 2005