IDTSVirtualInput100 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
public interface class IDTSVirtualInput100 : Microsoft::SqlServer::Dts::Pipeline::Wrapper::Sql2012::IDTSObject100
[System.Runtime.InteropServices.Guid("9944F684-49C4-4354-AB7F-EE422A650E0E")]
[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)]
public interface IDTSVirtualInput100 : Microsoft.SqlServer.Dts.Pipeline.Wrapper.Sql2012.IDTSObject100
[<System.Runtime.InteropServices.Guid("9944F684-49C4-4354-AB7F-EE422A650E0E")>]
[<System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)>]
type IDTSVirtualInput100 = interface
interface IDTSObject100
Public 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
注解
通过调用GetVirtualInput对象的方法IDTSInput100来检索 。IDTSVirtualInput100 该 VirtualInputColumnCollection 属性包含图中上游组件提供的列。
在程序化构建数据流任务时,通过调用 SetUsageType 的方法 CManagedComponentWrapperClass为组件选择虚拟列。
编写自定义数据流组件的开发者利用虚拟输入发现可用的上游列,并根据组件的不同,根据虚拟集合中的列向输入添加列。
由于虚拟输入是上游列的反映,对虚拟输入或虚拟输入集合列的修改不会影响自身 IDTSOutput100 。
属性
| 名称 | 说明 |
|---|---|
| Description | |
| ID | |
| IdentificationString | |
| IsSorted | |
| Name | |
| ObjectType | |
| SourceLocale | |
| VirtualInputColumnCollection | |
方法
| 名称 | 说明 |
|---|---|
| SetUsageType(Int32, DTSUsageType) | |