PackageInfoEnumerator.Current プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクションから現在の PackageInfo 要素を返します。
public:
property Microsoft::SqlServer::Dts::Runtime::PackageInfo ^ Current { Microsoft::SqlServer::Dts::Runtime::PackageInfo ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.PackageInfo Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.PackageInfo
Public ReadOnly Property Current As PackageInfo
プロパティ値
PackageInfo オブジェクト。
例
次のコード例では、Samples フォルダーから 2 つのパッケージを読み込み、DTS サービスに保存します。 次に、列挙子を作成し、MoveNext メソッドと Current メソッドを使用してパッケージを繰り返し処理し、各パッケージの名前を出力します。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
namespace PackageInfoTest
{
class Program
{
static void Main(string[] args)
{
string pkg = @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx";
string pkg2 = @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx";
Application app = new Application();
Package p1 = app.LoadPackage(pkg, null);
Package p2 = app.LoadPackage(pkg2, null);
p1.Description = "UsingExecuteProcess package";
p2.Description = "Calculated Columns package";
app.SaveToDtsServer(p1, null, @"File System\myp1Package", "YOURSERVER");
app.SaveToDtsServer(p2, null, @"File System\myp2Package", "YOURSERVER");
PackageInfos pInfos = app.GetDtsServerPackageInfos(@"File System", "YOURSERVER");
Console.WriteLine("Number of Packages {0}", pInfos.Count.ToString());
PackageInfoEnumerator iEnum = pInfos.GetEnumerator();
while (iEnum.MoveNext())
{
String pkgName = iEnum.Current.Name;
Console.WriteLine(pkgName);
}
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Namespace PackageInfoTest
Class Program
Shared Sub Main(ByVal args() As String)
Dim pkg As String = "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx"
Dim pkg2 As String = "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"
Dim app As Application = New Application()
Dim p1 As Package = app.LoadPackage(pkg,Nothing)
Dim p2 As Package = app.LoadPackage(pkg2,Nothing)
p1.Description = "UsingExecuteProcess package"
p2.Description = "Calculated Columns package"
app.SaveToDtsServer(p1, Nothing, "File System\myp1Package", "YOURSERVER")
app.SaveToDtsServer(p2, Nothing, "File System\myp2Package", "YOURSERVER")
Dim pInfos As PackageInfos = app.GetDtsServerPackageInfos("File System","YOURSERVER")
Console.WriteLine("Number of Packages {0}", pInfos.Count.ToString())
Dim iEnum As PackageInfoEnumerator = pInfos.GetEnumerator()
While iEnum.MoveNext()
Dim pkgName As String = iEnum.Current.Name
Console.WriteLine(pkgName)
End While
End Sub
End Class
End Namespace
サンプル出力:
Number of Packages 2
myp1Package
myp2Package
注釈
列挙子を作成した後や Reset
メソッドを呼び出した後は、Current プロパティの値を列挙子が読み取る前に、MoveNext
メソッドを呼び出して列挙子をコレクションの先頭の要素に進めておく必要があります。そうしないと、Current は未定義となり、例外がスローされます。
前回の MoveNext
の呼び出しで false
が返された場合 (コレクションの末尾であることを示します)、その後で Current を呼び出しても例外がスローされます。
Currentは、列挙子の位置を移動せず、または呼び出されるまでMoveNext
Reset
同じオブジェクトを返すCurrent連続する呼び出しを行います。
列挙子は、コレクションが変更されない限り有効です。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は無効になり、回復不能になります。したがって、次の呼び出しは MoveNext
Reset
InvalidOperationException
. ただし、コレクションが呼び出しと呼び出しCurrentの間でMoveNext
変更された場合、Current列挙子が無効になっている場合でも、設定されている要素が返されます。