IDTSVirtualInput90 Interface
上流コンポーネントからコンポーネントが利用できる列を表します。
名前空間: Microsoft.SqlServer.Dts.Pipeline.Wrapper
アセンブリ: Microsoft.SqlServer.DTSPipelineWrap (microsoft.sqlserver.dtspipelinewrap.dll 内)
構文
'宣言
<GuidAttribute("B9A5E5EB-4BFC-48AF-95E9-6344C6794340")> _
<TypeLibTypeAttribute(4160)> _
Public Interface IDTSVirtualInput90
Inherits IDTSObject90
[GuidAttribute("B9A5E5EB-4BFC-48AF-95E9-6344C6794340")]
[TypeLibTypeAttribute(4160)]
public interface IDTSVirtualInput90 : IDTSObject90
[GuidAttribute(L"B9A5E5EB-4BFC-48AF-95E9-6344C6794340")]
[TypeLibTypeAttribute(4160)]
public interface class IDTSVirtualInput90 : IDTSObject90
/** @attribute GuidAttribute("B9A5E5EB-4BFC-48AF-95E9-6344C6794340") */
/** @attribute TypeLibTypeAttribute(4160) */
public interface IDTSVirtualInput90 extends IDTSObject90
GuidAttribute("B9A5E5EB-4BFC-48AF-95E9-6344C6794340")
TypeLibTypeAttribute(4160)
public interface IDTSVirtualInput90 extends IDTSObject90
解説
IDTSVirtualInput90 を取得するには、IDTSInput90 オブジェクトの GetVirtualInput メソッドを呼び出します。VirtualInputColumnCollection プロパティには、グラフの上流コンポーネントから利用できる列が含まれます。
データ フロー タスクをプログラムによって作成している場合は、CManagedComponentWrapperClass の SetUsageType メソッドを呼び出すことによってコンポーネントの仮想列が選択されます。
カスタム データ フロー コンポーネントを作成している開発者は、仮想入力を使用して利用可能な上流列を検出し、コンポーネントによっては、仮想コレクションの列に基づいて入力に列を追加します。
仮想入力には上流列が反映されるため、仮想入力または仮想入力コレクションの列を変更しても、IDTSOutput90 自体に影響はありません。
使用例
次のコード例は、プログラムでデータ フロー タスクを作成するとき、仮想入力を使用してコンポーネントが使用する列を選択する方法を示しています。
public void SelectColumns(IDTSComponentMetaData90 md)
{
// Create the design time instance of the component.
CManagedComponentWrapper wrp = md.Instantiate();
// Walk the input collection.
foreach (IDTSInput90 input in md.InputCollection)
{
// Get the virtual input columns.
IDTSVirtualInput90 vInput = input.GetVirtualInput();
// For each virtual column, set its usagetype to READONLY.
foreach (IDTSVirtualInputColumn90 vCol in vInput.VirtualInputColumnCollection)
wrp.SetUsageType(input.ID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY);
}
}
Public Sub SelectColumns(ByVal md As IDTSComponentMetaData90)
Dim wrp As CManagedComponentWrapper = md.Instantiate
For Each input As IDTSInput90 In md.InputCollection
Dim vInput As IDTSVirtualInput90 = input.GetVirtualInput
For Each vCol As IDTSVirtualInputColumn90 In vInput.VirtualInputColumnCollection
wrp.SetUsageType(input.ID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY)
Next
Next
End Sub
次のコード例は、入力がパスに接続されると、仮想入力からすべての DT_STR 列を選択するカスタム データ フロー コンポーネントを示しています。
public override void OnInputPathAttached(int inputID)
{
IDTSInput90 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);
IDTSVirtualInput90 vInput = input.GetVirtualInput();
foreach (IDTSVirtualInputColumn90 vCol in vInput.VirtualInputColumnCollection)
{
if (vCol.DataType == DataType.DT_STR)
{
this.SetUsageType(inputID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY);
}
}
}
Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)
Dim input As IDTSInput90 = ComponentMetaData.InputCollection.GetObjectByID(inputID)
Dim vInput As IDTSVirtualInput90 = input.GetVirtualInput
For Each vCol As IDTSVirtualInputColumn90 In vInput.VirtualInputColumnCollection
If vCol.DataType = DataType.DT_STR Then
Me.SetUsageType(inputID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY)
End If
Next
End Sub
プラットフォーム
開発プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
対象プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
参照
関連項目
IDTSVirtualInput90 Members
Microsoft.SqlServer.Dts.Pipeline.Wrapper Namespace