언어

PackageInfoEnumerator.Current 속성

정의

컬렉션에서 현재 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 폴더에서 두 개의 패키지를 불러와 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  

샘플 출력:

패키지 수 2

myp1패키지

myp2Package

설명

열거자가 생성되거나 메서드에 Reset 호출한 후, MoveNext 열거자가 속성의 Current 값을 읽기 전에 집합의 첫 번째 요소로 열거자를 진행하기 위해 메서드를 호출해야 합니다; 그렇지 않으면 정의 Current 되지 않고 예외를 던집니다.

Current는 컬렉션의 끝을 나타내는 반환MoveNextfalse 마지막 호출인 경우 예외를 throw합니다.

Current에서는 열거자의 위치를 이동하지 않으며, 같은 개체를 호출하거나 Current 호출할 때까지 MoveNext 동일한 개체를 반환하는 Reset 연속 호출이 수행됩니다.

컬렉션이 변경되지 않은 상태로 유지되는 한 열거자는 유효한 상태로 유지됩니다. 컬렉션에 요소를 추가, 수정, 삭제하는 등 변경이 이루어지면, 열거기는 무효화되어 복구 불가능해집니다; 따라서 다음 호출 MoveNextReset 은 또는 를 던집니다 InvalidOperationException. 그러나 집합이 호출 MoveNextCurrent사이에 수정되면, Current 열거기가 무효화되었더라도 집합이 설정된 원소를 반환합니다.

적용 대상