Udostępnij za pośrednictwem


Klasa DtsEnumerator

Definiuje abstrakcyjna klasa podstawowa, który implementuje elemencie IEnumerator metody.

Hierarchia dziedziczenia

System.Object
  Microsoft.SqlServer.Dts.Runtime.DtsEnumerator
    Więcej...

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Runtime
Zestaw:  Microsoft.SqlServer.ManagedDTS (w Microsoft.SqlServer.ManagedDTS.dll)

Składnia

'Deklaracja
Public MustInherit Class DtsEnumerator _
    Implements IEnumerator
'Użycie
Dim instance As DtsEnumerator
public abstract class DtsEnumerator : IEnumerator
public ref class DtsEnumerator abstract : IEnumerator
[<AbstractClassAttribute>]
type DtsEnumerator =  
    class
        interface IEnumerator
    end
public abstract class DtsEnumerator implements IEnumerator

Typ DtsEnumerator uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna DtsEnumerator Inicjuje nowe wystąpienie DtsEnumerator klasy

Do góry

Właściwości

  Nazwa Opis
Właściwość publiczna Current Pobiera bieżący element kolekcja.

Do góry

Metody

  Nazwa Opis
Metoda publiczna Equals (Dziedziczony z Object).
Metoda chroniona Finalize (Dziedziczony z Object).
Metoda publiczna GetHashCode (Dziedziczony z Object).
Metoda publiczna GetType (Dziedziczony z Object).
Metoda chroniona MemberwiseClone (Dziedziczony z Object).
Metoda publiczna MoveNext Moduł wyliczający przechodzi do następnego elementu kolekcja.
Metoda publiczna Reset Ustawia modułu wyliczającego do jej początkowego położenia, przed pierwszym elementem kolekcja.
Metoda publiczna ToString (Dziedziczony z Object).

Do góry

Uwagi

DtsEnumeratorwszystkie moduły wyliczające jest interfejs podstawowy.DtsEnumerator Umożliwia tylko do odczytu danych kolekcja i nie jest używane do modyfikowania źródłowej kolekcja.

Początkowo moduł wyliczający jest umieszczony przed pierwszym elementem kolekcja.Resetrównież przełącza modułu wyliczającego do tej pozycji.Co to położenie, wywołując Current zgłasza wyjątek.Dlatego należy wywołać MoveNext z wyprzedzeniem modułu wyliczającego do pierwszego elementu kolekcja przed odczytywania wartości Current.

Currentzwraca ten sam obiekt, aż do MoveNext lub Reset jest wywoływana.MoveNextUstawia Current do następnego elementu.

Po zakończeniu zbierania jest moduł wyliczający jest pozycjonowane za ostatnim elementem kolekcja i wywoływania MoveNext zwraca false.Jeśli wywołanie ostatniego MoveNext zwrócił false, wywołujący Current zgłasza wyjątek.Aby zestaw Current do pierwszego elementu kolekcja ponownie, można wywołać Reset po MoveNext.

Moduł wyliczający zachowuje ważność tak długo, jak długo kolekcja pozostaje niezmieniony.Jeśli zmian do kolekcja, takie jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający bezpowrotnie unieważniona i wywołanie następnego MoveNext lub Reset generuje InvalidOperationException.Jeśli kolekcja jest zmodyfikowany między MoveNext i Current, Current zwraca element, który jest zestaw , nawet jeśli moduł wyliczający jest już unieważnionych.

Moduł wyliczający nie mieć wyłączny dostęp do kolekcja; Wyliczanie wszystkich elementów kolekcja nie jest więc procedurę bezpiecznego wątek.Nawet kiedy kolekcja jest synchronizowane, inne wątki nadal można zmodyfikować kolekcji, która powoduje, że moduł wyliczający w celu wygenerowania wyjątku.Aby zagwarantować bezpieczeństwo wątek podczas wyliczania, można blokada kolekcja podczas wyliczania całej lub połowów wyjątki, które powstają w wyniku zmian wprowadzonych przez innych wątków.

Przykłady

Poniższy przykład kodu dodaje zadanie do pakietu, a następnie uruchamia pakiet.Kolekcja ostrzeżenia jest wyświetlany przez tworzenie WarningEnumerator, która dziedziczy to DtsEnumerator Ostrzeżenie klasy i wyświetla każdy opis.

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);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask
 
Namespace Microsoft.SqlServer.SSIS.Samples
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim package As Package =  New Package() 
            Console.WriteLine("Package warnings count before running: {0}", package.Warnings.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 warnings count after running the package: {0}", package.Warnings.Count)
 
            ' Create the enumerator.
            Dim myEnumerator As WarningEnumerator =  package.Warnings.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

Przykładowe dane wyjściowe:

Pakiet liczba ostrzeżeń przed uruchomieniem: 0

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

Liczba ostrzeżeń pakiet po uruchomieniu tego pakietu: 2

Kolekcja zawiera następujące wartości:

[0] Adres w wierszu od nie jest poprawnie uformowany.Jest brak @ lub nie jest prawidłowy.

[1] Podmiotu jest pusty

Bezpieczeństwo wątków

Wszystkie publiczne statyczny (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Nie ma gwarancji, że elementy członkowskie wystąpień będą bezpieczne dla wątków.

Hierarchia dziedziczenia

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