删除订阅

Subscription 类的 Delete 方法删除应用程序数据库中的现有订阅记录。下面的示例说明如何使用托管代码删除订阅以及如何使用 Microsoft Visual Basic Scripting Edition (VBScript) 说明 COM interop。

托管代码示例

下面的示例说明如何使用 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 时,必须首先创建对象,然后初始化对象。其余代码与上文的托管代码示例相似。

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 帮助