Compartir a través de


Actualizar una suscripción

Utilice el método Update de la clase Subscription para modificar suscripciones existentes a una aplicación de Notification Services. El acceso a un objeto de suscripción individual se obtiene por medio del Id. de la suscripción, determinado por Notification Services al crear la suscripción, o, lo que es más probable, por iteración a través de las suscripciones del suscriptor mediante un objeto SubscriptionEnumeration.

En el ejemplo siguiente se muestra cómo actualizar una suscripción mediante código administrado y Microsoft Visual Basic Scripting Edition (VBScript) para ilustrar la interoperabilidad COM.

Ejemplo de código administrado

En el ejemplo siguiente se muestra cómo obtener una suscripción específica de una enumeración de suscripciones y, a continuación, actualizar esa suscripción.

Si está desarrollando una interfaz de usuario, puede obtener valores de los cuadros de texto y de lista, no de las cadenas codificadas de forma rígida, como se muestra a continuación. Para permitir a un suscriptor seleccionar una suscripción, podría llenar un cuadro de lista con los identificadores de suscripción devueltos por la enumeración de suscripciones. A continuación, permitiría al suscriptor seleccionar una suscripción, modificar valores de los campos y, por último, actualizar la suscripción.

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

Ejemplo de interoperabilidad COM

En el ejemplo de VBScript siguiente se muestra cómo utilizar el método SetFieldValue de la clase Subscription para establecer el valor de los campos de suscripción específicos de la aplicación:

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

Vea también

Conceptos

Crear un objeto de suscripción
Agregar una suscripción
Eliminar una suscripción
Obtener información de campos de suscripción
Llenar una lista de configuraciones regionales de suscriptor
Llenar una lista de zona horaria

Otros recursos

NS<nombreDeClaseDeSuscripción>View (vista)

Ayuda e información

Obtener ayuda sobre SQL Server 2005