DtsEventHandler.Executables 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个 Executables 集合,该集合包含发生事件时此容器中要运行的可执行文件。 此属性为只读。
public:
property Microsoft::SqlServer::Dts::Runtime::Executables ^ Executables { Microsoft::SqlServer::Dts::Runtime::Executables ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.Executables Executables { get; }
member this.Executables : Microsoft.SqlServer.Dts.Runtime.Executables
Public ReadOnly Property Executables As Executables
属性值
Executables 集合。
实现
示例
下面的代码示例为包中的事件创建一个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
示例输出:
名称创建名称,类型字符串
Name DelayValidation,类型布尔值
名称说明,类型字符串
名称禁用,键入布尔值
名称可执行文件,类型对象
名称 ExecutionDuration,类型 Int32
Name ExecutionResult,Type 对象
名称 ExecutionStatus,Type 对象
名称变量,类型对象
DtsEventHandler 中的优先约束数:1
DtsEventHandler 中的可执行文件数:2
DtsEventHandler 中的新执行项数:1
注解
集合 Executables 是对象的集合 Executable 。