DtsEnumerator.Current プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクション内の現在の要素を取得します。
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がスローされます。 コレクションが MoveNext と Currentの間で変更された場合、列挙子が既に無効になっている場合でも、 Current は設定されている要素を返します。