IDTSVirtualInput100 接口 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示上游组件中可用于某组件的列。
public interface class IDTSVirtualInput100 : Microsoft::SqlServer::Dts::Pipeline::Wrapper::IDTSObject100[System.Runtime.InteropServices.Guid("FECB6DEB-654E-43EE-B87D-35F88555172E")]
[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)]
public interface IDTSVirtualInput100 : Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSObject100[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)]
[System.Runtime.InteropServices.Guid("3D8056A8-CA41-48E4-A3C2-74542DF68634")]
public interface IDTSVirtualInput100 : Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSObject100[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)]
[System.Runtime.InteropServices.Guid("937BE9E1-F78D-4582-92EC-355CCF399702")]
public interface IDTSVirtualInput100 : Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSObject100[<System.Runtime.InteropServices.Guid("FECB6DEB-654E-43EE-B87D-35F88555172E")>]
[<System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)>]
type IDTSVirtualInput100 = interface
    interface IDTSObject100[<System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)>]
[<System.Runtime.InteropServices.Guid("3D8056A8-CA41-48E4-A3C2-74542DF68634")>]
type IDTSVirtualInput100 = interface
    interface IDTSObject100[<System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)>]
[<System.Runtime.InteropServices.Guid("937BE9E1-F78D-4582-92EC-355CCF399702")>]
type IDTSVirtualInput100 = interface
    interface IDTSObject100Public Interface IDTSVirtualInput100
Implements IDTSObject100- 属性
- 实现
示例
下面的代码示例演示如何在以编程方式生成数据流任务时使用虚拟输入选择组件使用的列。
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  
注解
IDTSVirtualInput100通过调用GetVirtualInput对象的方法IDTSInput100来检索该对象。 该 VirtualInputColumnCollection 属性包含图形中上游组件提供的列。
以编程方式生成数据流任务时,通过调用 SetUsageType 组件的方法 CManagedComponentWrapperClass为组件选择虚拟列。
编写自定义数据流组件的开发人员使用虚拟输入来发现可用的上游列,并根据组件将列添加到基于虚拟集合中的列的输入。
由于虚拟输入是上游列的反射,因此对虚拟输入集合中的列的修改不会对 IDTSOutput100 自身产生任何影响。
属性
| Description | 获取或设置 IDTSVirtualInput100 对象的说明。 | 
| ID | 获取或设置虚拟输入对象的 ID。 | 
| IdentificationString | 获取唯一标识 IDTSVirtualInput100 的字符串。 | 
| IsSorted | 获取一个值,该值指示是否对 IDTSVirtualInput100 中的虚拟输入列进行排序。 | 
| Name | 获取或设置 IDTSVirtualInput100 的名称。 | 
| ObjectType | |
| SourceLocale | 获取 IDTSVirtualInput100 的源的区域设置 ID (LCID)。 | 
| VirtualInputColumnCollection | 获取 IDTSVirtualInputColumnCollection100 的 IDTSVirtualInput100。 | 
方法
| SetUsageType(Int32, DTSUsageType) | 映射虚拟输入列对象并设置其用法类型。 |