次の方法で共有


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 プロパティには、グラフの上流コンポーネントから利用できる列が含まれます。

データ フロー タスクをプログラムによって作成している場合は、CManagedComponentWrapperClassSetUsageType メソッドを呼び出すことによってコンポーネントの仮想列が選択されます。

カスタム データ フロー コンポーネントを作成している開発者は、仮想入力を使用して利用可能な上流列を検出し、コンポーネントによっては、仮想コレクションの列に基づいて入力に列を追加します。

仮想入力には上流列が反映されるため、仮想入力または仮想入力コレクションの列を変更しても、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