Partilhar via


DtsEventHandlers.GetEnumerator Método

Definição

Retorna um enumerador para uso na iteração pela coleção DtsEventHandlers.

public:
 Microsoft::SqlServer::Dts::Runtime::DtsEventHandlerEnumerator ^ GetEnumerator();
public Microsoft.SqlServer.Dts.Runtime.DtsEventHandlerEnumerator GetEnumerator ();
override this.GetEnumerator : unit -> Microsoft.SqlServer.Dts.Runtime.DtsEventHandlerEnumerator
Public Function GetEnumerator () As DtsEventHandlerEnumerator

Retornos

Um DtsEventHandlerEnumerator para usar na iteração pela coleção.

Exemplos

O exemplo de código a seguir cria dois manipuladores de eventos para o pacote. Para um manipulador de eventos, duas tarefas são adicionadas. Em seguida, um DtsEventHandlerEnumerator é criado a partir da Package``EventHandlers coleção e usa os métodos e MoveNext os Current métodos para navegar sobre a coleção.

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

namespace DtsEventHandler_API  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  

            // Set up a DtsEventHandler for the OnError event of the package.  
            DtsEventHandler dtsEHOE = (DtsEventHandler)pkg.EventHandlers.Add("OnError");  
            DtsEventHandler dtsEHW = (DtsEventHandler)pkg.EventHandlers.Add("OnWarning");  

            // When an OnError Event occurs, the Executables collection contains  
            // the items to run. For this example, there will be a SendMailtTask  
            // and a BulkInsertTask with a precedence constraint between them.  
            Executable dtsEH1 = dtsEHOE.Executables.Add("STOCK:SendMailTask");  
            TaskHost th = (TaskHost)dtsEH1;  
            SendMailTask smTask = (SendMailTask)th.InnerObject;  
            smTask.Subject = "Send Mail task";  

            // Add a second executable to the DtsEventHandler.  
            Executable dtsEH2 = dtsEHOE.Executables.Add("STOCK:BulkInsertTask");  
            TaskHost th2 = (TaskHost)dtsEH2;  

            //Create the Enumerator. Since we added the DtsEventhandler to the   
            // package, then that's where to get the EventHandlers collection.  
            DtsEventHandlerEnumerator myEnum = pkg.EventHandlers.GetEnumerator();  
            Console.WriteLine("The collection contains the following values:");  
            int i = 0;  
            while ((myEnum.MoveNext()) && (myEnum.Current != null))  
                Console.WriteLine("[{0}] {1}", i++, myEnum.Current.Name);  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Tasks.SendMailTask  
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask  

Namespace DtsEventHandler_API  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As Package =  New Package()   

            ' Set up a DtsEventHandler for the OnError event of the package.  
            Dim dtsEHOE As DtsEventHandler = CType(pkg.EventHandlers.Add("OnError"), DtsEventHandler)  
            Dim dtsEHW As DtsEventHandler = CType(pkg.EventHandlers.Add("OnWarning"), DtsEventHandler)  

            ' When an OnError Event occurs, the Executables collection contains  
            ' the items to run. For this example, there will be a SendMailtTask  
            ' and a BulkInsertTask with a precedence constraint between them.  
            Dim dtsEH1 As Executable =  dtsEHOE.Executables.Add("STOCK:SendMailTask")   
            Dim th As TaskHost = CType(dtsEH1, TaskHost)  
            Dim smTask As SendMailTask = CType(th.InnerObject, SendMailTask)  
            smTask.Subject = "Send Mail task"  

            ' Add a second executable to the DtsEventHandler.  
            Dim dtsEH2 As Executable =  dtsEHOE.Executables.Add("STOCK:BulkInsertTask")   
            Dim th2 As TaskHost = CType(dtsEH2, TaskHost)  

            'Create the Enumerator. Since we added the DtsEventhandler to the   
            ' package, then that's where to get the EventHandlers collection.  
            Dim myEnum As DtsEventHandlerEnumerator =  pkg.EventHandlers.GetEnumerator()   
            Console.WriteLine("The collection contains the following values:")  
            Dim i As Integer =  0   
            While (myEnum.MoveNext()) &&(myEnum.Current <> Nothing)  
            Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1  
            End While  
        End Sub  
    End Class  
End Namespace  

Saída de exemplo:

A coleção contém os seguintes valores:

[0] OnError

[1] OnWarning

Comentários

O contêiner ao qual você retreia a coleção EventHandlers é o contêiner ao qual o evento foi adicionado. Por exemplo, se escrever essa linha de código, DtsEventHandler dtsEHOE = (DtsEventHandler)pkg.EventHandlers.Add("OnError");a GetEnumerator opção estará na pkg.EventHandlers coleção. Se um evento foi adicionado a um Sequence contêiner usando o Add método da Sequence's``EventHandlers coleção, recupere o enumerador de volta da Sequence coleção de manipuladores de eventos.

Aplica-se a