ScriptTask.Execute 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
執行包含在這個 DTS 指令碼工作執行個體的指令碼。
public:
override Microsoft::SqlServer::Dts::Runtime::DTSExecResult Execute(Microsoft::SqlServer::Dts::Runtime::Connections ^ connections, Microsoft::SqlServer::Dts::Runtime::VariableDispenser ^ variableDispenser, Microsoft::SqlServer::Dts::Runtime::IDTSComponentEvents ^ 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.VariableDispenser variableDispenser, Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents events, Microsoft.SqlServer.Dts.Runtime.IDTSLogging log, object transaction);
override this.Execute : Microsoft.SqlServer.Dts.Runtime.Connections * Microsoft.SqlServer.Dts.Runtime.VariableDispenser * Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents * Microsoft.SqlServer.Dts.Runtime.IDTSLogging * obj -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
Public Overrides Function Execute (connections As Connections, variableDispenser As VariableDispenser, events As IDTSComponentEvents, log As IDTSLogging, transaction As Object) As DTSExecResult
參數
- connections
- Connections
工作所使用之連接的集合。
- variableDispenser
- VariableDispenser
用於鎖定變數的 VariableDispenser 物件。
- events
- IDTSComponentEvents
實作 IDTSComponentEvents 介面的物件。
- log
- IDTSLogging
實作 IDTSLogging 介面的物件。
- transaction
- Object
容器所屬的交易物件。 執行階段會根據 TransactionOption 屬性提供容器的交易。 這個值可以是 Null。
傳回
DTSExecResult 列舉中的值。
範例
下列程式碼範例顯示如何在 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 execution.
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 execution.
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 Validate 封裝執行之前隱含地呼叫方法。 在驗證期間,會針對適當的設定檢查封裝中的所有工作,而且會審核套件中的所有物件,包括封裝、容器和套件中的其他元件。
如果在驗證階段中沒有造成封裝失敗的問題,封裝物件就會 Execute 針對封裝中的每個工作和物件呼叫方法。
null transaction 當屬性為時,傳遞給參數 TransactionOption false 。 如果 TransactionOption 屬性為 true ,您可以傳入 null transaction 參數以表示容器支援交易,但不會參與。