言語

DtsEnumerator.Current プロパティ

定義

コレクション内の現在の要素を取得します。

public:
 property System::Object ^ Current { System::Object ^ get(); };
public object Current { get; }
member this.Current : obj
Public ReadOnly Property Current As Object

プロパティ値

コレクション内の現在の要素。

実装

以下のコード例は、タスクをパッケージに追加し、そのパッケージを実行します。 警告コレクションは、このDtsEnumeratorクラスから継承したWarningEnumeratorを作成し、CurrentおよびMoveNextメソッドを使って各警告の説明をコレクション内の警告を確認することで作成されます。

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

namespace Microsoft.SqlServer.SSIS.Samples  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package package = new Package();  
            Console.WriteLine("Package warnings count before running: {0}", package.Warnings.Count);  

            TaskHost taskH2 = (TaskHost)package.Executables.Add("STOCK:SendMailTask");  
            taskH2.FailPackageOnFailure = false;  
            taskH2.FailParentOnFailure = false;  
            Console.WriteLine("SendMailTask: {0}", taskH2.ID);  

            // Test that warnings were successfully added to the collection.  
            package.MaximumErrorCount = 100;  
            package.FailPackageOnFailure = false;  
            package.FailParentOnFailure = false;  
            package.DelayValidation = true;  
            package.Execute();  

            Console.WriteLine("Package warnings count after running the package: {0}", package.Warnings.Count);  

            // Create the enumerator.  
            WarningEnumerator myEnumerator = package.Warnings.GetEnumerator();  
            Console.WriteLine("The collection contains the following values:");  
            int i = 0;  
            while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))  
                Console.WriteLine("[{0}] {1}", i++, myEnumerator.Current.Description);  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask  

Namespace Microsoft.SqlServer.SSIS.Samples  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim package As Package =  New Package()   
            Console.WriteLine("Package warnings count before running: {0}", package.Warnings.Count)  

            Dim taskH2 As TaskHost = CType(package.Executables.Add("STOCK:SendMailTask"), TaskHost)  
            taskH2.FailPackageOnFailure = False  
            taskH2.FailParentOnFailure = False  
            Console.WriteLine("SendMailTask: {0}", taskH2.ID)  

            ' Test that warnings were successfully added to the collection.  
            package.MaximumErrorCount = 100  
            package.FailPackageOnFailure = False  
            package.FailParentOnFailure = False  
            package.DelayValidation = True  
            package.Execute()  

            Console.WriteLine("Package warnings count after running the package: {0}", package.Warnings.Count)  

            ' Create the enumerator.  
            Dim myEnumerator As WarningEnumerator =  package.Warnings.GetEnumerator()   
            Console.WriteLine("The collection contains the following values:")  
            Dim i As Integer =  0   
            While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)  
                Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1  
            End While  
        End Sub  
    End Class  
End Namespace  

出力例:

実行前のパッケージ警告カウント:0

SendMailTask: {34CAEFF9-64BF-401D-B646-C88B705DB971}

パッケージの警告はパッケージを実行した後にカウントされます:2

コレクションには以下の値が含まれています:

[0] From行のアドレスが正しく形成されていません。 @が欠けているか、有効でない。

[1] 主語は空である

注釈

列挙器が作成されるか、 Reset メソッドに呼び出した後、列挙子をコレクションの最初の要素に進めるために MoveNext メソッドを呼び出さなければ Currentの値を読み取れません。そうでなければ、 Current は定義されていません。

Current また、 MoveNext の最後の呼び出しが false返された場合も例外がスローされます。これはコレクションの末尾を示します。

Current 列挙子の位置を移動させないため、 Current を連続して呼び出すと、 MoveNext または Reset が呼び出されるまで同じオブジェクトが返されます。

列挙子は、コレクションが変更されない限り有効なままです。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は回復不能に無効になり、次に MoveNext または Reset 呼び出すと InvalidOperationExceptionがスローされます。 コレクションが MoveNextCurrentの間で変更された場合、列挙子が既に無効になっている場合でも、 Current は設定されている要素を返します。

適用対象