Add メソッド
新しいコンテナ オブジェクトまたはタスク オブジェクトを Executables コレクションに追加します。
名前空間: Microsoft.SqlServer.Dts.Runtime
アセンブリ: Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS.dll)
構文
'宣言
Public Function Add ( _
moniker As String _
) As Executable
'使用
Dim instance As Executables
Dim moniker As String
Dim returnValue As Executable
returnValue = instance.Add(moniker)
public Executable Add(
string moniker
)
public:
Executable^ Add(
String^ moniker
)
member Add :
moniker:string -> Executable
public function Add(
moniker : String
) : Executable
パラメーター
- moniker
型: System. . :: . .String
実行可能オブジェクトのモニカです。
戻り値
型: Microsoft.SqlServer.Dts.Runtime. . :: . .Executable
新しく作成された Executable オブジェクトからの TaskHost オブジェクトです。
新しいオブジェクトのプロパティの設定またはメソッドの呼び出しを行う場合、2 つのオプションを使用できます。
TaskHost の Properties コレクションを使用します。たとえば、オブジェクトからプロパティを取得するには、th.Properties["propertyname"].GetValue(th)) を使用します。プロパティを設定するには、th.Properties["propertyname"].SetValue(th, <value>); を使用します。
TaskHost の InnerObject をタスク クラスにキャストします。たとえば、一括挿入タスクが Executable としてパッケージに追加され、その後 TaskHost にキャストされた後で、このタスクを BulkInsertTask にキャストするには、BulkInsertTask myTask = th.InnerObject as BulkInsertTask; を使用します。
タスク固有のクラスにキャストせずに TaskHost クラスをコード内で使用する場合、次の利点があります。
TaskHostProperties プロバイダは、コード内でアセンブリを参照する必要がありません。
コンパイル時にタスクの名前を知る必要がないため、すべてのタスクで動作する汎用ルーチンをコーディングできます。これらの汎用ルーチンでは、タスク名を引数として受け取るメソッドを記述できます。このメソッド コードはすべてのタスクで動作します。これは、テスト コードを記述するのに適したメソッドです。
TaskHost からタスク固有のクラスにキャストする場合、次の利点があります。
Visual Studio プロジェクトで入力候補機能 (IntelliSense) を使用できます。
コードの実行が高速化する場合があります。
事前バインドのオブジェクトが生成されます。事前バインドおよび遅延バインドの詳細については、「Visual Basic Language Concepts」の「Early and Late Binding」を参照してください。
必要に応じてオブジェクトをタスク固有のクラスにキャストするかどうかを選択できます。
説明
新しいコンテナまたはタスクを作成して Executables コレクションに追加する場合は、Add を使用します。このメソッドのパラメータは文字列であり、TaskInfo オブジェクトの CLSID、PROGID、STOCK モニカ、または CreationName プロパティを指定できます。このメソッドは、Executable オブジェクトとして新しく作成されたタスクの TaskHost オブジェクトを返します。詳細については、「制御フローへのタスクの追加」を参照してください。
使用例
次のコード例では、一括挿入タスクを実行可能オブジェクトとしてパッケージに追加します。
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