次の方法で共有


GetEnumerator メソッド

DtsEventHandlers コレクションに対する繰り返し処理で使用する列挙子を返します。

名前空間:  Microsoft.SqlServer.Dts.Runtime
アセンブリ:  Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS.dll)

構文

'宣言
Public Function GetEnumerator As DtsEventHandlerEnumerator
'使用
Dim instance As DtsEventHandlers
Dim returnValue As DtsEventHandlerEnumerator

returnValue = instance.GetEnumerator()
public DtsEventHandlerEnumerator GetEnumerator()
public:
DtsEventHandlerEnumerator^ GetEnumerator()
member GetEnumerator : unit -> DtsEventHandlerEnumerator 
public function GetEnumerator() : DtsEventHandlerEnumerator

説明

イベントを追加したコンテナから、EventHandlers コレクションを取得します。たとえば、DtsEventHandler dtsEHOE = (DtsEventHandler)pkg.EventHandlers.Add("OnError"); というコード行を記述した場合、GetEnumerator が pkg.EventHandlers コレクションで使用できるようになります。Sequence の EventHandlers コレクションの Add メソッドを使用して Sequence コンテナにイベントを追加した場合は、Sequence イベント ハンドラ コレクションから列挙子を取得します。

使用例

次のコード サンプルでは、パッケージに 2 つのイベント ハンドラを作成します。1 つのイベント ハンドラに 2 つのタスクが追加されます。次に、Package の EventHandlers コレクションから DtsEventHandlerEnumerator を作成し、Current メソッドと MoveNext メソッドを使用してコレクションを移動します。

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

サンプルの出力 :

The collection contains the following values:

[0] OnError

[1] OnWarning