다음을 통해 공유


DtsEventHandlers.GetEnumerator Method

Returns an enumerator for use in iterating over the DtsEventHandlers collection.

네임스페이스: Microsoft.SqlServer.Dts.Runtime
어셈블리: Microsoft.SqlServer.ManagedDTS (in microsoft.sqlserver.manageddts.dll)

구문

‘선언
Public Function GetEnumerator As DtsEventHandlerEnumerator
public DtsEventHandlerEnumerator GetEnumerator ()
public:
DtsEventHandlerEnumerator^ GetEnumerator ()
public DtsEventHandlerEnumerator GetEnumerator ()
public function GetEnumerator () : DtsEventHandlerEnumerator

반환 값

A DtsEventHandlerEnumerator.

주의

The container that you retreive the EventHandlers collection from is the container that the event was added to. For example, if write this line of code, DtsEventHandler dtsEHOE = (DtsEventHandler)pkg.EventHandlers.Add("OnError");, then the GetEnumerator will be in the pkg.EventHandlers collection. If an event was added to a Sequence container using the Add method of the Sequence'sEventHandlers collection, then retrieve the enumerator back from the Sequence event handlers collection.

The following code sample creates two event handlers for the package. For one event handler, two tasks are added. Then a DtsEventHandlerEnumerator is created from the PackageEventHandlers collection, and uses the Current and MoveNext methods to navigate over the collection.

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

Sample Output:

The collection contains the following values:

[0] OnError

[1] OnWarning

스레드 보안

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

플랫폼

개발 플랫폼

지원되는 플랫폼 목록은 SQL Server 2005 설치를 위한 하드웨어 및 소프트웨어 요구 사항을 참조하십시오.

대상 플랫폼

지원되는 플랫폼 목록은 SQL Server 2005 설치를 위한 하드웨어 및 소프트웨어 요구 사항을 참조하십시오.

참고 항목

참조

DtsEventHandlers Class
DtsEventHandlers Members
Microsoft.SqlServer.Dts.Runtime Namespace