DtsContainer.Execute 方法

定義

將應用程式、容器或封裝當做封裝工作流程的一部分執行。

public:
 override 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 override 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);
override this.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 Overrides 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

容器所屬的交易物件,視 TransactionOption 屬性中找到的值而定。 這個值可以是 Null。

傳回

DTSExecResult

表示執行結果的 DTSExecResult 列舉。

範例

下列程式碼範例示範如何執行繼承自的封裝 EventsProvider ,而後者又繼承自 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 方法的詳細資訊,請參閱撰寫 自訂工作的程式碼。

方法會在 Execute Validate 封裝執行之前隱含地呼叫方法。 在驗證期間,會針對適當的設定檢查封裝中的所有工作,而且會審核套件中的所有物件,包括封裝、容器和套件中的其他元件。

如果在驗證階段中沒有造成封裝失敗的問題,封裝物件就會繼續 Execute 針對封裝中的每個工作和物件呼叫方法。

null transaction 當屬性為時,傳遞給參數 TransactionOption false 。 如果 TransactionOption 屬性為 true,您可以傳入 null transaction 參數以表示容器支援交易,但不會參與。

適用於