Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Classe DtsEnumerator

Defines an abstract base class that implements the IEnumerator methods.

System..::..Object
  Microsoft.SqlServer.Dts.Runtime..::..DtsEnumerator
    Plus...

Espace de noms :  Microsoft.SqlServer.Dts.Runtime
Assembly :  Microsoft.SqlServer.ManagedDTS (en Microsoft.SqlServer.ManagedDTS.dll)
public abstract class DtsEnumerator : IEnumerator

Le type DtsEnumerator expose les membres suivants.

  NomDescription
Méthode publiqueDtsEnumeratorInitializes a new instance of the DtsEnumerator class.
Haut de la page
  NomDescription
Propriété publiqueCurrentGets the current element in the collection.
Haut de la page
  NomDescription
Méthode publiqueEquals (hérité de Object.)
Méthode protégéeFinalize (hérité de Object.)
Méthode publiqueGetHashCode (hérité de Object.)
Méthode publiqueGetType (hérité de Object.)
Méthode protégéeMemberwiseClone (hérité de Object.)
Méthode publiqueMoveNextAdvances the enumerator to the next element of the collection.
Méthode publiqueResetSets the enumerator to its initial position, which is before the first element in the collection.
Méthode publiqueToString (hérité de Object.)
Haut de la page

DtsEnumerator is the base interface for all enumerators. The DtsEnumerator allows only reading of the data in the collection and is not used to modify the underlying collection.

Initially, the enumerator is positioned before the first element in the collection. Reset also brings the enumerator back to this position. At this position, calling Current throws an exception. Therefore, you must call MoveNext to advance the enumerator to the first element of the collection before reading the value of Current.

Current returns the same object until either MoveNext or Reset is called. MoveNext sets Current to the next element.

After the end of the collection is passed, the enumerator is positioned after the last element in the collection, and calling MoveNext returns false. If the last call to MoveNext returned false, calling Current throws an exception. To set Current to the first element of the collection again, you can call Reset followed by MoveNext.

An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to MoveNext or Reset throws an InvalidOperationException. If the collection is modified between MoveNext and Current, Current will return the element that it is set to, even if the enumerator is already invalidated.

The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is not a thread-safe procedure. Even when a collection is synchronized, other threads could still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration or catch the exceptions that result from changes made by other threads.

The following code example adds a task to a package then runs the package. The warnings collection is shown by creating a WarningEnumerator, which inherits from this DtsEnumerator class, and displays each warning description.

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);
        }
    }
}

Sample Output:

Package warnings count before running: 0

SendMailTask: {34CAEFF9-64BF-401D-B646-C88B705DB971}

Package warnings count after running the package: 2

The collection contains the following values:

[0] The address in the From line is not formed correctly. It is missing an @ or it is not valid.

[1] Subject is empty

Tous les membres publics static (Shared dans Visual Basic) de ce type sont thread-safe. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.
System..::..Object
  Microsoft.SqlServer.Dts.Runtime..::..DtsEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..BreakpointTargetEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ConfigurationEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ConnectionEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ConnectionInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..DBProviderInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..DtsEventHandlerEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ErrorEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..EventInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ExecutableEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ExtendedPropertyEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ForEachEnumeratorInfosEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..ForEachVariableMappingEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..LogEntryInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..LogProviderEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..LogProviderInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..PackageInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..PipelineComponentInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..PrecedenceConstraintEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..PropertyEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..RunningPackagesEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..TaskInfoEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..VariableEnumerator
    Microsoft.SqlServer.Dts.Runtime..::..WarningEnumerator
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
© 2013 Microsoft. Tous droits réservés.