サブスクリプションの削除

Subscription クラスの Delete メソッドは、アプリケーション データベースの既存のサブスクリプション レコードを削除します。以下の例は、マネージ コードを使用してサブスクリプションを削除する方法と、Microsoft Visual Basic Scripting Edition (VBScript) を使用してサブスクリプションを削除する方法 (COM 相互運用の一例) を示しています。

マネージ コードの例

次の例は、SubscriptionEnumeration オブジェクトと GetFieldValue メソッドを使用して、特定のサブスクリプションを検索して削除する方法を示しています。このサンプルは、City の値が Edmonds であるサブスクライバのサブスクリプションをすべて削除します。

ユーザー インターフェイスを開発する場合、SubscriptionEnumeration クラスを使用して、サブスクライバのサブスクリプションをすべて一覧表示できます。これにより、サブスクライバではサブスクリプションを選択して削除できるようになります。

// 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
// that you want to delete.
foreach (Subscription subscription in testSubscriptionEnumeration)
{
    String city = subscription.GetFieldValue("City").ToString();
    if (city.Equals("Edmonds"))
        testSubscription.SubscriptionId = subscription.SubscriptionId;
}

// Delete the subscription
testSubscription.Delete();

COM 相互運用の例

次の VBScript コード例は、COM 相互運用を使用して、サブスクリプションを削除する方法を示しています。COM 相互運用を使用する場合、まずオブジェクトを作成し、次にそのオブジェクトを初期化する必要があります。コードの残りの部分は、上記のマネージ コードの例と同様です。

Dim testInstance, testApplication, testSubscriptionEnumeration

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 SubscriptionEnumeration object.
' This constructor returns the subscriptions for
' the specified application, subscription class, and subscriber.
set testSubscriptionEnumeration = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.SubscriptionEnumeration")
testSubscriptionEnumeration.Initialize (testApplication), _ 
    subscriptionClassName, "TestUser1"

' Step through the subscriptions, locate the one 
' that should be removed, and delete it.
for each thisSubscription in testSubscriptionEnumeration
    if thisSubscription.GetFieldValue("City") = "Orlando" then
        thisSubscription.Delete
    end if
next

wscript.echo "Subscriber deleted."

参照

概念

Subscription オブジェクトの作成
サブスクリプションの追加
サブスクリプションの更新
サブスクリプション フィールド情報の取得
サブスクライバ ロケール一覧の作成
タイム ゾーン一覧の作成

その他の技術情報

NS<SubscriptionClassName>View

ヘルプおよび情報

SQL Server 2005 の参考資料の入手