次の方法で共有


サブスクライバのデバイスとサブスクリプションの取得

Subscriber クラスには、指定したサブスクライバに関連付けられているサブスクライバ デバイスおよびサブスクリプション レコードへのアクセスを提供する GetSubscriptions メソッドと GetDevices メソッドが用意されています。

Subscriber クラスの GetSubscriptions メソッドを使用すると、指定したサブスクライバの 1 つのアプリケーションにある 1 つのサブスクリプション クラスのサブスクリプションのコレクションすべてを表す SubscriptionEnumeration オブジェクトが返されます。

Subscriber クラスの GetDevices メソッドを使用すると、指定したサブスクライバのすべてのデバイスのコレクションを表す SubscriberDeviceEnumeration オブジェクトが返されます。

マネージ コードの例 : サブスクリプションを返す場合

次のコード例は、マネージ コードで Subscriber オブジェクトを使用して、サブスクリプション クラスのサブスクリプション フィールドの値をサブスクライバのすべてのサブスクリプションについて取得する方法を示しています。

string instanceName = "Tutorial";
string applicationName = "Weather";
string subscriptionClassName = "WeatherCity";
string subscriptionFieldName = "City";

// Create the NSInstance object.
NSInstance testInstance = new NSInstance(instanceName);

// Create the Subscriber object.
Subscriber testSubscriber = new Subscriber(testInstance);

// Set the subscriber ID so that the
// correct records are retrieved. 
testSubscriber.SubscriberId = "TestUser1";

// Create the NSApplication object.
NSApplication testApplication =
    new NSApplication(testInstance, applicationName);

// Retrieve the subscriber's subscriptions.
SubscriptionEnumeration testSubscriptionEnumeration =
    testSubscriber.GetSubscriptions
    (testApplication, subscriptionClassName);

foreach (Subscription singleSub in testSubscriptionEnumeration)
{
    Console.WriteLine(singleSub[subscriptionFieldName].ToString());
}
Console.ReadLine();

マネージ コードの例 : デバイスを返す場合

次の例は、マネージ コードで Subscriber オブジェクトを使用し、単一のサブスクライバに属しているすべてのデバイスを取得する方法を示しています。

string instanceName = "Tutorial";

// Create the NSInstance object.
NSInstance testInstance = new NSInstance(instanceName);

// Create the Subscriber object.
Subscriber testSubscriber = new Subscriber(testInstance);

// Set the subscriber ID so that the
// correct records are retrieved. 
testSubscriber.SubscriberId = "TestUser1";

// Retrieve the subscriber's devices.
SubscriberDeviceEnumeration testSubscriberDeviceEnumeration =
    testSubscriber.GetDevices();

// Print each device to the console.
foreach (SubscriberDevice singleSubDevice in
    testSubscriberDeviceEnumeration)
{
    Console.WriteLine(singleSubDevice.DeviceName);
}
Console.ReadLine();

COM 相互運用の例 : サブスクリプションを返す場合

次の VBScript のコード例は、アンマネージ コードで Subscriber オブジェクトを使用して、サブスクリプション クラスのサブスクリプション フィールドの値をサブスクライバのすべてのサブスクリプションについて取得する方法を示しています。

Dim testInstance, testSubscriber, _
    testApplication, testSubscriptionEnumeration

const instanceName = "Tutorial"
const applicationName = "Weather"
const subscriptionClassName = "WeatherCity"
const subscriptionFieldName = "City"

' Create the NSInstance object.
set testInstance = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.NSInstance")
testInstance.Initialize instanceName

' Create the Subscriber object.
set testSubscriber = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.Subscriber")
testSubscriber.Initialize (testInstance)

' Create the NSApplication object.
set testApplication = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.NSApplication")
testApplication.Initialize (testInstance), applicationName

' Set the subscriber ID
testSubscriber.SubscriberID = "TestUser2"

' Retrieve a subscriber's subscriptions.
set testSubscriptionEnumeration = _ 
    testSubscriber.GetSubscriptions((testApplication), _ 
      subscriptionClassName)

' Print field value
for each subscription in testSubscriptionEnumeration
        Wscript.Echo "Field Value", _ 
            subscription.GetFieldValue(subscriptionFieldName)
next

wscript.echo "Done!"

COM 相互運用の例 : デバイスを返す場合

次の VBScript の例は、アンマネージ コードで Subscriber オブジェクトを使用し、単一のサブスクライバに属しているすべてのデバイスを取得する方法を示しています。

Dim testInstance, testSubscriber, testSubscriberDeviceEnumeration
const instanceName = "Tutorial"

' Create the NSInstance object.
set testInstance = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.NSInstance")
testInstance.Initialize instanceName

' Create the Subscriber object.
set testSubscriber = WScript.CreateObject( _ 
    "Microsoft.SqlServer.NotificationServices.Subscriber")
testSubscriber.Initialize (testInstance)

' Set the subscriber ID so that the
testSubscriber.SubscriberId = "TestUser2"

' Retrieve the subscriber's devices.
set testSubscriberDeviceEnumeration = testSubscriber.GetDevices

for each singleSubDevice in testSubscriberDeviceEnumeration
    Wscript.Echo "Device Name:", singleSubDevice.DeviceName
next

wscript.echo "Done!"

参照

概念

Subscriber オブジェクトの作成
サブスクライバ レコードの追加
サブスクライバ レコードの更新
サブスクライバ レコードの削除
関連サブスクリプション情報の削除

その他の技術情報

NSSubscriberView

ヘルプおよび情報

SQL Server 2005 の参考資料の入手