Share via


ErrorEnumerator.Current Propriété

Définition

Obtient l'élément DtsError actuel dans la collection.

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

Valeur de propriété

Élément DtsError actuel dans la collection.

Exemples

L’exemple de code suivant ajoute une tâche à un package, puis exécute le package. La collection d’avertissements est affichée en créant et ErrorEnumerator en affichant chaque description d’erreur.

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  

Exemple de sortie :

Nombre d’erreurs de package avant d’exécuter : 0

SendMailTask : {DE20010F-928A-4E9B-B57F-71D7991EC8F0}

Nombre d’erreurs de package après l’exécution du package : 3

La collection contient les valeurs suivantes :

[0] Serveur SMTP non spécifié

[1] Aucun destinataire spécifié

[2] Il y avait des erreurs lors de la validation de la tâche.

Remarques

Une fois qu’un énumérateur est créé ou après un appel à la Reset méthode, la MoveNext méthode doit être appelée pour avancer l’énumérateur vers le premier élément de la collection avant que l’énumérateur puisse lire la valeur de la Current propriété ; sinon, Current elle n’est pas définie et lève une exception.

Current lève également une exception si le dernier appel à MoveNext renvoyer false, qui indique la fin de la collection.

Current ne déplace pas la position de l’énumérateur, et les appels consécutifs pour renvoyer le même objet jusqu’à Current ce que l’un MoveNext ou Reset l’autre soit appelé.

Un énumérateur reste valide aussi longtemps que la collection demeure inchangée. Si des modifications sont apportées à la collection, comme l’ajout, la modification ou la suppression d’éléments, l’énumérateur est invalidé et devient irrécupérable ; par conséquent, l’appel suivant à MoveNext ou Reset lève un InvalidOperationException. Si la collection est modifiée entre les appels à MoveNext et Current, Current retourne l’élément sur lequel il est défini, même si l’énumérateur a été invalidé.

S’applique à