Executables.Add(String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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つの選択肢があります。TaskHostのPropertiesコレクションを使うこと。 例えば、オブジェクトからプロパティを取得するには、thを用います。プロパティ["propertyname"]。GetValue(th))です。 プロパティを設定するには、thを使いましょう。プロパティ["propertyname"]。SetValue(th, <value>);.TaskHostのInnerObjectをタスククラスにキャストします。 例えば、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 オブジェクトとして返します。 詳細については、「 制御フローのタスクまたはコンテナーを追加または削除する」を参照してください。