구독 업데이트

Subscription 클래스의 Update 메서드를 사용하여 Notification Services 응용 프로그램에 대한 기존 구독을 수정합니다. 구독 생성 시 Notification Services가 결정하는 구독 ID를 통해 또는 SubscriptionEnumeration 개체를 통해 구독자의 구독을 반복 처리하여 개별 구독 개체에 액세스합니다.

아래 예에서는 구독을 업데이트하기 위해 관리 코드를 사용하는 방법과 COM interop을 나타내는 Microsoft VBScript(Visual Basic Scripting Edition)를 사용하는 방법을 보여 줍니다.

관리 코드 예

다음 예에서는 구독 열거형에서 특정 구독을 가져온 다음 해당 구독을 업데이트하는 방법을 보여 줍니다.

사용자 인터페이스를 개발할 경우에는 아래에 표시된 것과 같은 하드 코드된 문자열이 아닌 텍스트 및 목록 상자에서 값을 가져올 수 있습니다. 구독자가 구독을 선택할 수 있게 하려는 경우 구독 열거형에서 반환된 구독 식별자로 목록 상자를 채울 수 있습니다. 그런 후 구독자가 구독을 선택하고 필드 값을 수정한 후 구독을 업데이트하도록 할 수 있습니다.

// 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 Interop 예

다음 VBScrip 예에서는 Subscription 클래스의 SetFieldValue 메서드를 사용하여 응용 프로그램별 구독 필드 값을 설정하는 방법을 보여 줍니다.

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

참고 항목

개념

구독 개체 만들기
구독 추가
구독 삭제
구독 필드 정보 가져오기
구독자 로캘 목록 채우기
표준 시간대 목록 채우기

관련 자료

NS<SubscriptionClassName>View

도움말 및 정보

SQL Server 2005 지원 받기