言語

ScriptTask.Execute メソッド

定義

この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 を含むパッケージを実行する方法を示しています。 Bulk Insertタスクはこのコードサンプルの一例に過ぎません。どんなタスクでも作成可能です。

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されている場合、transactionパラメータにnullを渡して、コンテナがトランザクションをサポートしているが参加しないことを示します。

適用対象