PrecedenceConstraints.GetEnumerator Method

PrecedenceConstraints コレクションに対する繰り返し処理で使用する列挙子を返します。

名前空間: Microsoft.SqlServer.Dts.Runtime
アセンブリ: Microsoft.SqlServer.ManagedDTS (microsoft.sqlserver.manageddts.dll 内)

構文

'宣言
Public Function GetEnumerator As PrecedenceConstraintEnumerator
public PrecedenceConstraintEnumerator GetEnumerator ()
public:
PrecedenceConstraintEnumerator^ GetEnumerator ()
public PrecedenceConstraintEnumerator GetEnumerator ()
public function GetEnumerator () : PrecedenceConstraintEnumerator

戻り値

PrecedenceConstraintEnumerator です。

解説

Contains メソッドの呼び出しが true を返す場合、PrecedenceConstraints[index] 構文を使用することにより、コレクション内の指定した要素にアクセスできます。Contains メソッドが false を返す場合、このプロパティは例外をスローします。C# の場合、このプロパティは PrecedenceConstraints クラスのインデクサとなります。

使用例

次のコード例では、2 つの優先順位制約を作成します。次に、Contains を使用して、特定の制約が存在することを確認し、Remove メソッドの使用前と使用後の制約の数をカウントします。さらに、制約の ID を返す pConsts[i].IDItem 構文を使用してコレクションの繰り返し処理を行うための GetEnumerator の使用方法を示します。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.FileSystemTask;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;

namespace PrecedenceConst
{
    class Program
    {
        static void Main(string[] args)
        {
            Package pkg = new Package();
            // Add a File System task.
            Executable eFileTask1 = pkg.Executables.Add("STOCK:FileSystemTask");
            TaskHost thFileTask1 = eFileTask1 as TaskHost;

            // Add a second File System task.
            Executable eFileTask2 = pkg.Executables.Add("STOCK:FileSystemTask");
            TaskHost thFileTask2 = eFileTask2 as TaskHost;

            // Add a Bulk Insert task.
            Executable eBulkInsert = pkg.Executables.Add("STOCK:BulkInsertTask");
            TaskHost thBulkInsert = eBulkInsert as TaskHost;

            // Add a precedence constraint between eFileTask1 and eFileTask2.
            // Set the constraint to be that eFileTask2 cannot run 
            // until eFileTask1 completes.
            PrecedenceConstraint pcFileTasks = pkg.PrecedenceConstraints.Add(eFileTask1, eFileTask2);
            pcFileTasks.Name = "constraint between File System Tasks";

            // Add another precedence constraint. Add it between eFileTask2 and BulkInsert.
            // Again, set the constraint to be that BulkInsert cannot run 
            // until eFileTask2 completes.
            PrecedenceConstraint pcFiletoBulk = pkg.PrecedenceConstraints.Add(eFileTask2, eBulkInsert);
            pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks";

            // Obtain the precedence constraint collection.
            PrecedenceConstraints pConsts = pkg.PrecedenceConstraints;
            Boolean containsConstraint = pkg.PrecedenceConstraints.Contains("constraint between File System and Bulk Insert Tasks");
            Console.WriteLine("Contains the constraint between File System and Bulk Insert Tasks? {0}", containsConstraint);
            
            // Create the enumerator.
            PrecedenceConstraintEnumerator myEnumerator = pConsts.GetEnumerator();
            // Iterate over the collection, and remove the Bulk Insert task.
            int i = 0;
            while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))
            {
                Console.WriteLine("ID {0}", pConsts[i].ID);
            }

            Console.WriteLine("Number of constraints {0}", pConsts.Count);
            // Remove the second contstraint.
            pConsts.Remove(1);
            // Verify that one has been removed.
            Console.WriteLine("Number of constraints {0}", pConsts.Count);

            Console.WriteLine();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
 
Namespace PrecedenceConst
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim pkg As Package =  New Package() 
            ' Add a File System task.
            Dim eFileTask1 As Executable =  pkg.Executables.Add("STOCK:FileSystemTask") 
            Dim thFileTask1 As TaskHost =  eFileTask1 as TaskHost 
 
            ' Add a second File System task.
            Dim eFileTask2 As Executable =  pkg.Executables.Add("STOCK:FileSystemTask") 
            Dim thFileTask2 As TaskHost =  eFileTask2 as TaskHost 
 
            ' Add a Bulk Insert task.
            Dim eBulkInsert As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask") 
            Dim thBulkInsert As TaskHost =  eBulkInsert as TaskHost 
 
            ' Add a precedence constraint between eFileTask1 and eFileTask2.
            ' Set the constraint to be that eFileTask2 cannot run 
            ' until eFileTask1 completes.
            Dim pcFileTasks As PrecedenceConstraint =  pkg.PrecedenceConstraints.Add(eFileTask1,eFileTask2) 
            pcFileTasks.Name = "constraint between File System Tasks"
 
            ' Add another precedence constraint. Add it between eFileTask2 and BulkInsert.
            ' Again, set the constraint to be that BulkInsert cannot run 
            ' until eFileTask2 completes.
            Dim pcFiletoBulk As PrecedenceConstraint =  pkg.PrecedenceConstraints.Add(eFileTask2,eBulkInsert) 
            pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks"
 
            ' Obtain the precedence constraint collection.
            Dim pConsts As PrecedenceConstraints =  pkg.PrecedenceConstraints 
            Dim containsConstraint As Boolean =  pkg.PrecedenceConstraints.Contains("constraint between File System and Bulk Insert Tasks") 
            Console.WriteLine("Contains the constraint between File System and Bulk Insert Tasks? {0}", containsConstraint)
 
            ' Create the enumerator.
            Dim myEnumerator As PrecedenceConstraintEnumerator =  pConsts.GetEnumerator() 
            ' Iterate over the collection, and remove the Bulk Insert task.
            Dim i As Integer =  0 
            While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)
                Console.WriteLine("ID {0}", pConsts(i).ID)
            End While
 
            Console.WriteLine("Number of constraints {0}", pConsts.Count)
            ' Remove the second contstraint.
            pConsts.Remove(1)
            ' Verify that one has been removed.
            Console.WriteLine("Number of constraints {0}", pConsts.Count)
 
            Console.WriteLine()
        End Sub
    End Class
End Namespace

サンプルの出力 :

Contains the constraint between File System and Bulk Insert Tasks?True

ID {BA42AF32-3AC1-4CB6-85A2-289760ADBFA4}

ID {BA42AF32-3AC1-4CB6-85A2-289760ADBFA4}

Number of constraints 2

Number of constraints 1

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

PrecedenceConstraints Class
PrecedenceConstraints Members
Microsoft.SqlServer.Dts.Runtime Namespace