언어

ErrorEnumerator.Current 속성

정의

컬렉션 내 현재 DtsError 요소를 가져옵니다.

public:
 property Microsoft::SqlServer::Dts::Runtime::DtsError ^ Current { Microsoft::SqlServer::Dts::Runtime::DtsError ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.DtsError Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.DtsError
Public ReadOnly Property Current As DtsError

속성 값

컬렉션의 현재 DtsError 요소입니다.

예제

다음 코드 예시는 패키지에 작업을 추가한 후 패키지를 실행하는 방식입니다. 경고 모음은 각 오류 설명을 생성 ErrorEnumerator 하여 표시됩니다.

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

namespace Microsoft.SqlServer.SSIS.Samples  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package package = new Package();  
            Console.WriteLine("Package errors count before running:   {0}", package.Errors.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 errors count after running the package:   {0}", package.Errors.Count);  

            // Create the enumerator.  
            ErrorEnumerator myEnumerator = package.Errors.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.SendMailTask  

Namespace Microsoft.SqlServer.SSIS.Samples  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim package As Package =  New Package()   
            Console.WriteLine("Package errors count before running:   {0}", package.Errors.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 errors count after running the package:   {0}", package.Errors.Count)  

            ' Create the enumerator.  
            Dim myEnumerator As ErrorEnumerator =  package.Errors.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: {DE20010F-928A-4E9B-B57F-71D7991EC8F0}

패키지 실행 후 발생 오류: 3

이 수집품에는 다음과 같은 값들이 포함되어 있습니다:

[0] SMTP 서버 명시되지 않음

[1] 수혜자는 명시되지 않음

[2] 작업 검증 중에 오류가 발생했습니다.

설명

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

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

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

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

적용 대상