Share via


DtsEventHandlers.Add(String) 方法

定义

将新事件添加到 DtsEventHandlers 集合。

public:
 System::Object ^ Add(System::String ^ eventName);
public object Add (string eventName);
member this.Add : string -> obj
Public Function Add (eventName As String) As Object

参数

eventName
String

要添加到集合中的事件的名称。

返回

已添加到集合中的 DtsEventHandler 对象。

示例

下面的代码示例为包中的事件创建一个DtsEventHandlerOnError。 此 DtsEventHandler 容器包含两个可执行文件,并在它们之间建立优先约束。 代码示例显示容器中的优先约束数,以及容器中的可执行文件数。 然后,代码示例删除一个可执行文件并重新显示计数。

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 Microsoft.SqlServer.SSIS.Samples  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  
            // Set up a DtsEventHandler for the OnError event of the package.  
            DtsEventHandler dtsEH = (DtsEventHandler)pkg.EventHandlers.Add("OnError");  

            // Show the name and type of the properties in DtsEventHandler  
            // using the Properties collection.  
            DtsProperties props = dtsEH.Properties;  
            String name;  
            TypeCode propType;  
            foreach (DtsProperty prop in props)  
            {  
                propType = prop.Type;  
                name = prop.Name;  
                Console.WriteLine("Name {0}, Type {1}", name, propType);  
            }  

            // 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 = dtsEH.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 = dtsEH.Executables.Add("STOCK:BulkInsertTask");  
            TaskHost th2 = (TaskHost)dtsEH2;  

            // Add a precedence constraint between the two tasks.  
            PrecedenceConstraint pc = dtsEH.PrecedenceConstraints.Add(dtsEH1, dtsEH2);  
            pc.Value = DTSExecResult.Completion;  

            // Review the number of constraints in the DtsEventHandler collection.  
            PrecedenceConstraints pcDTSEH = dtsEH.PrecedenceConstraints;  
            Console.WriteLine("Number of precedence constraints in DtsEventHandler: {0}", dtsEH.PrecedenceConstraints.Count);  

            // Review the number of executables in the DtsEventHandler collection.  
            Console.WriteLine("Number of executables in DtsEventHandler: {0}", dtsEH.Executables.Count);  

            // Remove the first executable in the DtsEventHandler collection.  
            dtsEH.Executables.Remove(0);  
            Console.WriteLine("New number of exeutables in DtsEventHandler: {0}", dtsEH.Executables.Count);  
        }  
    }  
}  
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 Microsoft.SqlServer.SSIS.Samples  
    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 dtsEH As DtsEventHandler = CType(pkg.EventHandlers.Add("OnError"), DtsEventHandler)  

            ' Show the name and type of the properties in DtsEventHandler  
            ' using the Properties collection.  
            Dim props As DtsProperties =  dtsEH.Properties   
            Dim name As String  
            Dim propType As TypeCode  
            Dim prop As DtsProperty  
            For Each prop In props  
                propType = prop.Type  
                name = prop.Name  
                Console.WriteLine("Name {0}, Type {1}", name, propType)  
            Next  

            ' 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 =  dtsEH.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 =  dtsEH.Executables.Add("STOCK:BulkInsertTask")   
            Dim th2 As TaskHost = CType(dtsEH2, TaskHost)  

            ' Add a precedence constraint between the two tasks.  
            Dim pc As PrecedenceConstraint =  dtsEH.PrecedenceConstraints.Add(dtsEH1,dtsEH2)   
            pc.Value = DTSExecResult.Completion  

            ' Review the number of constraints in the DtsEventHandler collection.  
            Dim pcDTSEH As PrecedenceConstraints =  dtsEH.PrecedenceConstraints   
            Console.WriteLine("Number of precedence constraints in DtsEventHandler: {0}", dtsEH.PrecedenceConstraints.Count)  

            ' Review the number of executables in the DtsEventHandler collection.  
            Console.WriteLine("Number of executables in DtsEventHandler: {0}", dtsEH.Executables.Count)  

            ' Remove the first executable in the DtsEventHandler collection.  
            dtsEH.Executables.Remove(0)  
            Console.WriteLine("New number of exeutables in DtsEventHandler: {0}", dtsEH.Executables.Count)  
        End Sub  
    End Class  
End Namespace  

示例输出:

名称 CreationName,类型字符串

名称 DelayValidation,类型布尔值

名称说明,类型字符串

名称禁用,键入布尔值

名称可执行文件,类型对象

名称 ExecutionDuration,键入 Int32

Name ExecutionResult,Type 对象

Name ExecutionStatus, Type 对象

名称变量,类型对象

DtsEventHandler 中的优先约束数:1

DtsEventHandler 中的可执行文件数:2

DtsEventHandler 中的新执行项数:1

注解

Integration Services 除了允许创建自己的自定义事件外,Integration Services 还提供许多事件。 有关事件处理程序的详细信息,请参阅 Integration Services (SSIS) 事件处理程序 并将 事件处理程序添加到包。 有关自定义事件的详细信息,请参阅 开发自定义任务

适用于