Поделиться через


Обновление подписки

Используйте метод Update класса Subscription для изменения существующих подписок на приложение служб Notification Services. Доступ к отдельному объекту подписки осуществляется либо на основании идентификатора подписи, определяемого службами Notification Services при создании подписки, либо, более вероятно, путем пролистывания подписок подписчика с использованием объекта SubscriptionEnumeration.

В нижеприведенных примерах показано, как обновить подписку с помощью управляемого кода и с помощью Microsoft Visual Basic Scripting Edition (VBScript) для демонстрации взаимодействия COM.

Пример управляемого кода

В следующем примере показано получение конкретной подписки из списка подписок, а затем обновление этой подписки.

При разработке пользовательского интерфейса можно получать значения из текстовых полей и списков, а не из строк, внесенных в код, как показано ниже. Чтобы разрешить подписчику выбрать подписку, можно заполнить список идентификаторами подписок, возвращаемыми после перечисления подписок. После этого можно разрешить подписчику выбрать подписку, изменить значения полей, а затем обновить подписку.

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

Пример взаимодействия COM

В следующем примере VBScript показано использование метода SetFieldValue класса Subscription для установки значения полей подписки, относящихся к приложению:

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

См. также

Основные понятия

Создание объекта Subscription
Добавление подписки
Удаление подписки
Получение сведений о поле подписки
Заполнение списка языковых стандартов подписчиков
Заполнение списка часовых поясов

Другие ресурсы

Представление NS<SubscriptionClassName>View

Справка и поддержка

Получение помощи по SQL Server 2005