共用方式為


刪除訂閱

Subscription 類別的 Delete 方法會刪除應用程式資料庫中現有的訂閱記錄。下列範例顯示如何利用 Managed 程式碼來刪除訂閱,利用 Microsoft Visual Basic Scripting Edition (VBScript) 來說明 COM Interop。

Managed 程式碼範例

下列範例顯示如何利用 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 Interop 範例

下列 VBScript 程式碼範例顯示如何利用 COM Interop 來刪除訂閱。當使用 COM Interop 時,您必須先建立再初始化物件。程式碼的其餘部份類似於上述 Managed 程式碼範例。

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

請參閱

概念

建立訂閱物件
新增訂閱
更新訂閱
取得訂閱欄位資訊
擴展訂閱者地區設定程式碼
擴展時區清單

其他資源

NS<SubscriptionClassName>View

說明及資訊

取得 SQL Server 2005 協助