IDTSVirtualInput100 インターフェイス
上流コンポーネントからコンポーネントが利用できる列を表します。
名前空間: Microsoft.SqlServer.Dts.Pipeline.Wrapper
アセンブリ: Microsoft.SqlServer.DTSPipelineWrap (Microsoft.SqlServer.DTSPipelineWrap.dll)
構文
'宣言
<GuidAttribute("86FC9629-769A-479E-82ED-C6FD75C2FC8E")> _
Public Interface IDTSVirtualInput100 _
Inherits IDTSObject100
'使用
Dim instance As IDTSVirtualInput100
[GuidAttribute("86FC9629-769A-479E-82ED-C6FD75C2FC8E")]
public interface IDTSVirtualInput100 : IDTSObject100
[GuidAttribute(L"86FC9629-769A-479E-82ED-C6FD75C2FC8E")]
public interface class IDTSVirtualInput100 : IDTSObject100
[<GuidAttribute("86FC9629-769A-479E-82ED-C6FD75C2FC8E")>]
type IDTSVirtualInput100 =
interface
interface IDTSObject100
end
public interface IDTSVirtualInput100 extends IDTSObject100
説明
IDTSVirtualInput100 を取得するには、IDTSInput100 オブジェクトの GetVirtualInput メソッドを呼び出します。VirtualInputColumnCollection プロパティには、グラフの上流コンポーネントから利用できる列が含まれます。
データ フロー タスクをプログラムによって作成している場合は、CManagedComponentWrapperClass の SetUsageType メソッドを呼び出すことによってコンポーネントの仮想列が選択されます。
カスタム データ フロー コンポーネントを作成している開発者は、仮想入力を使用して利用可能な上流列を検出し、コンポーネントによっては、仮想コレクションの列に基づいて入力に列を追加します。
仮想入力には上流列が反映されるため、仮想入力または仮想入力コレクションの列を変更しても、IDTSOutput100 自体に影響はありません。
使用例
次のコード例は、プログラムでデータ フロー タスクを作成するとき、仮想入力を使用してコンポーネントが使用する列を選択する方法を示しています。
public void SelectColumns(IDTSComponentMetaData100 md)
{
// Create the design time instance of the component.
CManagedComponentWrapper wrp = md.Instantiate();
// Walk the input collection.
foreach (IDTSInput100 input in md.InputCollection)
{
// Get the virtual input columns.
IDTSVirtualInput100 vInput = input.GetVirtualInput();
// For each virtual column, set its usagetype to READONLY.
foreach (IDTSVirtualInputColumn100 vCol in vInput.VirtualInputColumnCollection)
wrp.SetUsageType(input.ID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY);
}
}
Public Sub SelectColumns(ByVal md As IDTSComponentMetaData100)
Dim wrp As CManagedComponentWrapper = md.Instantiate
For Each input As IDTSInput100 In md.InputCollection
Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput
For Each vCol As IDTSVirtualInputColumn100 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)
{
IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);
IDTSVirtualInput100 vInput = input.GetVirtualInput();
foreach (IDTSVirtualInputColumn100 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 IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(inputID)
Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput
For Each vCol As IDTSVirtualInputColumn100 In vInput.VirtualInputColumnCollection
If vCol.DataType = DataType.DT_STR Then
Me.SetUsageType(inputID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY)
End If
Next
End Sub