言語

Executables.Add(String) メソッド

定義

Executablesコレクションに新しいコンテナやタスクオブジェクトを追加します。

public:
 Microsoft::SqlServer::Dts::Runtime::Executable ^ Add(System::String ^ moniker);
public Microsoft.SqlServer.Dts.Runtime.Executable Add(string moniker);
member this.Add : string -> Microsoft.SqlServer.Dts.Runtime.Executable
Public Function Add (moniker As String) As Executable

パラメーター

moniker
String

実行ファイルの名称です。

返品

新たに作成されたExecutableオブジェクトのTaskHostオブジェクトです。新しいオブジェクトに対してプロパティを設定したりメソッドを呼び出すには、2つの選択肢があります。TaskHostPropertiesコレクションを使うこと。 例えば、オブジェクトからプロパティを取得するには、thを用います。プロパティ["propertyname"]。GetValue(th))です。 プロパティを設定するには、thを使いましょう。プロパティ["propertyname"]。SetValue(th, <value>);.TaskHostInnerObjectをタスククラスにキャストします。 例えば、Bulk InsertタスクがExecutableとしてパッケージに追加され、その後TaskHostにキャストされた後にBulkInsertTaskにキャストする場合は、BulkInsertTask myTask = thを使用します。InnerObjectをBulkInsertTaskとして使います。タスク固有のクラスにキャストせずにTaskHostクラスをコード内で使用する場合、次のような利点があります。TaskHostPropertiesプロバイダーはコード内でアセンブリへの参照を必要としません。 コンパイル時にタスク名を知る必要がないため、どんなタスクにも対応できる汎用ルーチンをコーディングできます。 これらの汎用ルーチンは、タスク名をメソッドに渡し、メソッドコードがすべてのタスクで動作するメソッドのことです。 これはテストコードを書く良い方法です。TaskHostからタスク固有のクラスへのキャプティングには以下の利点があります。Visual Studioプロジェクトは文の補完(IntelliSense)を提供します。 コードの動作が速くなるかもしれません。 早期バインディングおよび後期バインディングの詳細については、「Visual Basic Language Conceptsにおける早期および後期バインディング」をご覧ください。ニーズに応じて、オブジェクトをタスク固有のクラスにキャストするかどうかは異なります。

以下のコード例では、パッケージに実行ファイルとしてBulk Insertタスクを追加しています。

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

namespace Executables_API  
{  
        class Program  
        {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  
            Executable exec = pkg.Executables.Add("STOCK:BulkInsertTask");  

            // Obtain the collection.  
            Executables pgkExecs = pkg.Executables;  
            foreach (Executable eachExec in pgkExecs)  
            {  
                TaskHost th = exec as TaskHost;  
                Console.WriteLine("Executable creation name is: {0}", th.CreationName);  
            }  
                        // Show that at least one executable exists.  
            if (pgkExecs.Contains(0))  
            {  
                Console.WriteLine("Contains returned true");  
            }  
            else  
            {  
                Console.WriteLine("Contains returned false");  
            }  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Executables_API  
        Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As Package =  New Package()   
            Dim exec As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask")   

            ' Obtain the collection.  
            Dim pgkExecs As Executables =  pkg.Executables   
            Dim eachExec As Executable  
            For Each eachExec In pgkExecs  
                Dim th As TaskHost =  exec as TaskHost   
                Console.WriteLine("Executable creation name is: {0}", th.CreationName)  
            Next  
                        ' Show that at least one executable exists.  
            If pgkExecs.Contains(0) Then  
                Console.WriteLine("Contains returned true")  
            Else   
                Console.WriteLine("Contains returned false")  
            End If  
        End Sub  
        End Class  
End Namespace  

出力例:

Executable creation name is: Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask, Microsoft.SqlServer.BulkInsertTask, Version=10.0.000.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

Contains returned true

注釈

新しいコンテナやタスクを作成し、Executablesコレクションに追加したいときにAddを使ってください。 メソッドパラメータは文字列であり、TaskInfoオブジェクトのCLSID、PROGID、STOCKの名称、またはCreationNameプロパティである場合があります。 このメソッドは新たに作成されたタスクの TaskHost オブジェクトを Executable オブジェクトとして返します。 詳細については、「 制御フローのタスクまたはコンテナーを追加または削除する」を参照してください。

適用対象