次の方法で共有


EnumURN プロパティ

選択された列挙に対する SMO 列挙の URN (Uniform Resource Name) を表す String を取得します。値の設定も可能です。

名前空間:  Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO
アセンブリ:  Microsoft.SqlServer.ForEachSMOEnumerator (Microsoft.SqlServer.ForEachSMOEnumerator.dll)

構文

'宣言
Public Property EnumURN As String
    Get
    Set
'使用
Dim instance As ForEachSMOEnumerator
Dim value As String

value = instance.EnumURN

instance.EnumURN = value
public string EnumURN { get; set; }
public:
virtual property String^ EnumURN {
    String^ get () sealed;
    void set (String^ value) sealed;
}
abstract EnumURN : string with get, set
override EnumURN : string with get, set
final function get EnumURN () : String
final function set EnumURN (value : String)

プロパティ値

型: System. . :: . .String
列挙子の構成パラメータを含む String です。

実装

IDTSForEachSMOEnumerator. . :: . .EnumURN

説明

SMO 列挙 URN は、4 つの部分から成ります。最初の部分は文字列であり、RuntimeServer の後に接続が続きます。次のコード行は、接続が指定された EnumURN プロパティの例です。

RuntimeServer[@Connection='{B1552E8D-43AE-44B1-B5D3-03C4F5461977}']/Server[@Name='localhost']/SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']

文字列の 2 番目の部分は、サーバー名パラメータです。

文字列の最後の 2 つの部分は、SMOEnumObj パラメータと SMOEnumType パラメータです。4 つの部分から成る文字列の 3 番目にある SMOEnumObj パラメータは、列挙対象の列挙オブジェクトを表します。以下の値が有効です。

@"LinkedServers"

@"Jobs"

@"Logins"

@"Databases"

@"FileGroups"

@"DataFiles"

@"LogFiles"

@"StoredProcedures"

@"UserDefinedDataTypes"

@"UserDefinedFunctions"

@"Views"

@"Users"

@"Tables"

@"Columns"

@"ForeignKeys"

@"Triggers"

上記のコード例は、データベースの列挙を表します。

構成文字列の最後となる 4 番目の部分は SMOEnumType パラメータで、使用する列挙型を指定します。以下の値が有効です。

@"Objects"

@"ObjectsPP"

@"Names"

@"URNs"

@"Locations"

上記のコード例では、名前を使用して列挙しています。

使用例

ForEachSMOEnumerator オブジェクトは、ForEachEnumeratorHost によって作成されホストされます。次のコード例は、ホスト オブジェクト内で ForEachSMOEnumerator を作成する方法を示します。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO;
using Microsoft.SqlServer.Dts.Runtime;


namespace Microsoft.SqlServer.SSIS.Samples
{
    internal class EnumType
    {
        public const string SMOEnum = "Foreach SMO Enumerator";
    }
    class Program
    {
        static void Main(string[] args)
        {
            Application app = new Application();
            ForEachEnumeratorInfos infos = app.ForEachEnumeratorInfos;
            ForEachEnumeratorInfo info = null;

            foreach (ForEachEnumeratorInfo enumInfo in infos)
            {
            Console.Write("Available enumerators: {0}\n", enumInfo.Name);
            // When the SMO enumerator is found, set the info variable.
            if (enumInfo.Name == EnumType.SMOEnum)
            {  
                info = enumInfo;
            }
        }

        ForEachEnumeratorHost enumH = info.CreateNew();
        Console.WriteLine("SMO Enumerator: " + enumH.InnerObject.ToString());
        ForEachSMOEnumerator smoEnumerator = (ForEachSMOEnumerator)enumH.InnerObject;
        smoEnumerator.EnumURN = "RuntimeServer[@Variable='MachineName']/Server[@Name='localhost']/" +
            "SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']";
    Console.WriteLine("SMO.EnumURN = {0}", smoEnumerator.EnumURN);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO
Imports Microsoft.SqlServer.Dts.Runtime

Namespace Microsoft.SqlServer.SSIS.Samples
    Friend Class EnumType
        Public const String SMOEnum = "Foreach SMO Enumerator"
    End Class
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim app As Application =  New Application() 
            Dim infos As ForEachEnumeratorInfos =  app.ForEachEnumeratorInfos 
            Dim info As ForEachEnumeratorInfo =  Nothing 

            Dim EnumInfo As ForEachEnumeratorInfo 
            Dim enumInfo As ForEachEnumeratorInfo
            End Enum
            For Each EnumInfo In infos 
            For Each EnumInfo In infos Console.Write("Available enumerators: {0}\n" EnumInfo.Name) End Enum 
            For Each enumInfo In infos
            Console.Write("Available enumerators: {0}\n" enumInfo.Name)
            End Enum
            End Enum
            ' When the SMO enumerator is found, set the info variable.
            If EnumInfo.Name = EnumType.SMOEnum Then 
            Dim EnumInfo.Name As If =  EnumType.SMOEnum Then info  =  EnumInfo  End Enum
            If enumInfo.Name = EnumType.SMOEnum Then
                info = enumInfo
            End Enum
            End Enum
            End If
            Next

        Dim EnumH As ForEachEnumeratorHost =  info.CreateNew() 
        Dim enumH As ForEachEnumeratorHost =  info.CreateNew() 
        End Enum
        Console.WriteLine("SMO Enumerator: " + EnumH.InnerObject.ToString()) 
        Console.WriteLine("SMO Enumerator: " + enumH.InnerObject.ToString())
        End Enum
        Dim smoEnumerator As ForEachSMOEnumerator = CType(EnumH.InnerObject, ForEachSMOEnumerator)
        Dim smoEnumerator As ForEachSMOEnumerator = CType(enumH.InnerObject, ForEachSMOEnumerator)
        End Enum
        smoEnumerator.EnumURN = "RuntimeServer[@Variable='MachineName']/Server[@Name='localhost']/" +
            "SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']"
        Console.WriteLine("SMO.EnumURN = {0}", smoEnumerator.EnumURN)
        End Sub
    End Class
End Namespace

サンプルの出力 :

Available enumerators: Foreach File Enumerator

Available enumerators: Foreach Item Enumerator

Available enumerators: Foreach ADO Enumerator

Available enumerators: Foreach ADO.NET Schema Rowset Enumerator

Available enumerators: Foreach From Variable Enumerator

Available enumerators: Foreach NodeList Enumerator

Available enumerators: Foreach SMO Enumerator

SMO Enumerator: Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO.ForEachSMOEnumerator

SMO.EnumURN = RuntimeServer[@Variable='MachineName']/Server[@Name='localhost']/SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']