语言

Executable.Execute 方法

定义

执行可执行文件。

public:
 abstract Microsoft::SqlServer::Dts::Runtime::DTSExecResult Execute(Microsoft::SqlServer::Dts::Runtime::Connections ^ connections, Microsoft::SqlServer::Dts::Runtime::Variables ^ variables, Microsoft::SqlServer::Dts::Runtime::IDTSEvents ^ events, Microsoft::SqlServer::Dts::Runtime::IDTSLogging ^ log, System::Object ^ transaction);
public abstract Microsoft.SqlServer.Dts.Runtime.DTSExecResult Execute(Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.Variables variables, Microsoft.SqlServer.Dts.Runtime.IDTSEvents events, Microsoft.SqlServer.Dts.Runtime.IDTSLogging log, object transaction);
abstract member Execute : Microsoft.SqlServer.Dts.Runtime.Connections * Microsoft.SqlServer.Dts.Runtime.Variables * Microsoft.SqlServer.Dts.Runtime.IDTSEvents * Microsoft.SqlServer.Dts.Runtime.IDTSLogging * obj -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
Public MustOverride Function Execute (connections As Connections, variables As Variables, events As IDTSEvents, log As IDTSLogging, transaction As Object) As DTSExecResult

参数

connections
Connections

集合 Connections 。

variables
Variables

集合 Variables 。

events
IDTSEvents

一个 IDTSEvents 用来引发事件的界面。

log
IDTSLogging

一个 IDTSLogging 接口。

transaction
Object

如果参与交易,则是交易类型的句柄。 此值可以为 null。

返回

返回枚举中的一个值 DTSExecResult ,表示运行可执行文件的成功、失败或其他状态。

示例

以下代码示例展示了如何运行一个包,通过该类继承 Executable 该类 DtsContainer 。 该包包含一个 BulkInsertTask. 批量插入任务就是该代码示例的一个例子;任何任务都可以被创建。

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

namespace Microsoft.SqlServer.SSIS.Samples  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package p = new Package();  
            p.InteractiveMode = true;  
            p.OfflineMode = true;  
            Executable exec1 = pkg.Executables.Add("STOCK:BulkInsertTask");  
            TaskHost th = exec1 as TaskHost;  

            // Set the CheckConstraints and DataFileType properties.             
            th.Properties["CheckConstraints"].SetValue(th, true);  
            th.Properties["DataFileType"].SetValue(th, DTSBulkInsert_DataFileType.DTSBulkInsert_DataFileType_Native);  

            // Run the package that contains the task.  
            pkg.Execute();  

            // Review the results of the run.  
            if (taskH.ExecutionResult == DTSExecResult.Failure || taskH.ExecutionStatus == DTSExecStatus.Abend)  
                Console.WriteLine("Task failed or abended");  
            else  
                Console.WriteLine("Task ran successfully");  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask  

Namespace Microsoft.SqlServer.SSIS.Samples  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim p As Package =  New Package()   
            p.InteractiveMode = True  
            p.OfflineMode = True  
            Dim exec1 As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask")   
            Dim th As TaskHost =  exec1 as TaskHost   

            ' Set the CheckConstraints and DataFileType properties.             
            th.Properties("CheckConstraints").SetValue(th, True)  
            th.Properties("DataFileType").SetValue(th, DTSBulkInsert_DataFileType.DTSBulkInsert_DataFileType_Native)  

            ' Run the package that contains the task.  
            pkg.Execute()  

            ' Review the results of the run.  
            If taskH.ExecutionResult = DTSExecResult.Failure Or taskH.ExecutionStatus = DTSExecStatus.Abend Then  
                Console.WriteLine("Task failed or abended")  
            Else   
                Console.WriteLine("Task ran successfully")  
            End If  
        End Sub  
    End Class  
End Namespace  

注解

该 Execute 方法由任务主机和其他对象继承, Executable 通过 DtsContainer 该抽象类,允许继承对象由运行时引擎运行。 Execute由单个对象继承的方法在代码中并不常用,建议如果你需要运行包中的任何任务或容器,就调用该Execute方法。 不过 Execute ,如果你遇到特殊情况,这种方法也可以在单个物体上使用。

该 Execute 方法的主要用途是在创建自定义任务时被继承并覆盖。 关于如何覆盖执行方法的更多信息,请参见 “编写自定义任务”。

Execute该方法在包运行前隐式调用Validate该方法。 在验证过程中,包中的所有任务都会被审查是否设置得当,包中的所有对象,包括包、容器和其他组件,都会被检查。

如果在验证阶段没有遇到会导致包失败的问题,包对象会为包中的每个任务和对象调用该 Execute 方法。

当性TransactionOption质为 false时,将参数 传递null给 transaction 。 如果属性TransactionOption为真,你可以传递nulltransaction参数,表示容器支持交易但不参与交易。

适用于