次の方法で共有


Exec80PackageTask.Execute Method

タスクを実行します。

名前空間: Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask
アセンブリ: Microsoft.SqlServer.Exec80PackageTask (microsoft.sqlserver.exec80packagetask.dll 内)

構文

'宣言
Public Overrides Function Execute ( _
    connections As Connections, _
    variableDispenser As VariableDispenser, _
    events As IDTSComponentEvents, _
    log As IDTSLogging, _
    txn As Object _
) As DTSExecResult
public override DTSExecResult Execute (
    Connections connections,
    VariableDispenser variableDispenser,
    IDTSComponentEvents events,
    IDTSLogging log,
    Object txn
)
public:
virtual DTSExecResult Execute (
    Connections^ connections, 
    VariableDispenser^ variableDispenser, 
    IDTSComponentEvents^ events, 
    IDTSLogging^ log, 
    Object^ txn
) override
public DTSExecResult Execute (
    Connections connections, 
    VariableDispenser variableDispenser, 
    IDTSComponentEvents events, 
    IDTSLogging log, 
    Object txn
)
public override function Execute (
    connections : Connections, 
    variableDispenser : VariableDispenser, 
    events : IDTSComponentEvents, 
    log : IDTSLogging, 
    txn : Object
) : DTSExecResult

パラメータ

  • connections
    タスクの Connections コレクションです。
  • variableDispenser
    タスクの Variables コレクションです。
  • events
    イベントを発生させるための IDTSComponentEvents インターフェイスを実装するオブジェクトへの参照です。
  • log
    IDTSLogging を実装するオブジェクトへの参照です。
  • txn
    TransactionOption プロパティの値によって、タスクが含まれるトランザクション オブジェクトを示します。この値を、null 参照 (Visual Basic では Nothing) に設定することができます。

戻り値

実行結果を示す DTSExecResult です。

解説

Execute メソッドは、DtsContainer クラスを通じてタスク ホストおよび Executable 抽象クラスのその他のオブジェクトにより継承され、継承オブジェクトのランタイム エンジンによる実行を許可します。個々のオブジェクトによって継承された Execute メソッドは通常、コードでは使用されません。パッケージでタスクまたはコンテナのいずれかを実行する必要がある場合は、Execute メソッドを呼び出すことをお勧めします。ただし、このメソッドを必要とする特定の状況においては、個々のオブジェクトで Execute メソッドを使用できます。

Execute メソッドは主に、カスタム タスクを作成するときに継承およびオーバーライドするために使用されます。Execute メソッドをオーバーライドする方法の詳細については、「Implementing the Execute Method in Custom Integration Services Tasks」を参照してください。

Execute メソッドは、パッケージの実行前に暗黙的に Validate メソッドを呼び出します。検証中、パッケージ内のすべてのタスクが適切な設定になっているか確認され、パッケージ、コンテナ、およびパッケージ内のその他のコンポーネントを含め、パッケージ内のすべてのオブジェクトが検証されます。

検証フェーズにパッケージが失敗する原因となるような問題が存在しない場合、パッケージ オブジェクトはパッケージ内の各タスクとオブジェクトごとに Execute メソッドを呼び出します。

TransactionOption プロパティが false である場合、transaction パラメータには null を渡します。TransactionOption プロパティが true の場合は、transaction パラメータに null を渡して、コンテナがトランザクションをサポートしているが参加していないことを示すことができます。

使用例

タスクの一部のプロパティを設定した後に BulkInsertTask を含むパッケージを実行するコード例を次に示します。このコード サンプルの例として、一括挿入タスクがあります。どのタスクも適宜作成できます。

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

namespace Microsoft.SqlServer.SSIS.Samples
{
    class Program
    {
        static void Main(string[] args)
        {
            // Note that this code shows how to set properties,
            // and that the testFile is pointing to a sample that has
            // not been stored to the StorageFile location.
            String testFile = @"C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx";
            String testPackageName = "DTSPackage1";
            String packageID = "{AAD06953-9847-4ED4-A3B5-FA6092C56E20}";
            String packageVersionGUID = "{3A312EFC-7477-4F3E-8633-E1DDA5C6CB9A}";
            Package p = new Package();
            Executable exec = p.Executables.Add("STOCK:Exec80PackageTask");
            TaskHost th = exec as TaskHost;
            // You can cast to the Exec80PackageTask here.
            // Exec80PackageTask execPT = th.InnerObject as Exec80PackageTask;

            // Set some properties on the Exec80PackageTask.
            th.Properties["Location"].SetValue(th, Exec80PackageTask.Locations.StorageFile);
            th.Properties["Filename"].SetValue(th, testFile);
            th.Properties["PackageName"].SetValue(th, testPackageName);
            th.Properties["PackageID"].SetValue(th, packageID);
            th.Properties["PackageVersionGUID"].SetValue(th, packageVersionGUID);

            // Run the package and the task.
            DTSExecResult status = p.Execute();

            // Review the result.
            if (status == DTSExecResult.Success)
                Console.WriteLine("ran successfully");
            else
                Console.WriteLine("Task failed");
            }
        }
    }
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask
 
Namespace Microsoft.SqlServer.SSIS.Samples
    Class Program
        Shared  Sub Main(ByVal args() As String)
            ' Note that this code shows how to set properties,
            ' and that the testFile is pointing to a sample that has
            ' not been stored to the StorageFile location.
            Dim testFile As String =  "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx" 
            Dim testPackageName As String =  "DTSPackage1" 
            Dim packageID As String =  "{AAD06953-9847-4ED4-A3B5-FA6092C56E20}" 
            Dim packageVersionGUID As String =  "{3A312EFC-7477-4F3E-8633-E1DDA5C6CB9A}" 
            Dim p As Package =  New Package() 
            Dim exec As Executable =  p.Executables.Add("STOCK:Exec80PackageTask") 
            Dim th As TaskHost =  exec as TaskHost 

            ' You can cast to the Exec80PackageTask here.
            ' Dim execPT As Exec80PackageTask =  th.InnerObject as Exec80PackageTask

            ' Set some properties on the Exec80PackageTask.
            th.Properties("Location").SetValue(th, Exec80PackageTask.Locations.StorageFile)
            th.Properties("Filename").SetValue(th, testFile)
            th.Properties("PackageName").SetValue(th, testPackageName)
            th.Properties("PackageID").SetValue(th, packageID)
            th.Properties("PackageVersionGUID").SetValue(th, packageVersionGUID)
 
            ' Run the package and the task.
            Dim status As DTSExecResult =  p.Execute() 
 
            ' Review the result.
            If status = DTSExecResult.Success Then
                Console.WriteLine("ran successfully")
            Else 
                Console.WriteLine("Task failed")
            End If
        End Sub
    End Class
End Namespace

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

Exec80PackageTask Class
Exec80PackageTask Members
Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask Namespace