IDTSBufferManager100.FindColumnByLineageID(Int32, Int32) 方法

定义

按索引获取指定 IDTSBuffer100 对象中列的位置。

public:
 int FindColumnByLineageID(int hBufferType, int nLineageID);
[System.Runtime.InteropServices.DispId(121)]
public int FindColumnByLineageID (int hBufferType, int nLineageID);
[<System.Runtime.InteropServices.DispId(121)>]
abstract member FindColumnByLineageID : int * int -> int
Public Function FindColumnByLineageID (hBufferType As Integer, nLineageID As Integer) As Integer

参数

hBufferType
Int32

包含该列的 IDTSBuffer100 对象的 ID。

nLineageID
Int32

要在 IDTSBuffer100 中查找的列的沿袭 ID。

返回

一个按索引指示 IDTSBuffer100 中列的位置的整数。

属性

示例

下面的代码示例演示没有输出列的转换组件如何使用该 FindColumnByLineageID 转换组件在缓冲区中查找其输入列。

int[] bufferColumnIndex;  
public override void PreExecute()  
{  
    IDTSInput100 input = ComponentMetaData.InputCollection[0];  
    bufferColumnIndex = new int[BufferManager.GetColumnCount(input.Buffer)];  

    for( int col=0; col < input.InputColumnCollection.Count; col++)  
    {  
        IDTSInputColumn100 iCol = input.InputColumnCollection[col];  
        bufferColumnIndex[col] = BufferManager.FindColumnByLineageID(input.Buffer, iCol.LineageID);  
    }  
}  
Private bufferColumnIndex As Integer()   

Public Overloads Overrides Sub PreExecute()   
 Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0)   
 bufferColumnIndex = New Integer(BufferManager.GetColumnCount(input.Buffer) - 1) {}   
 Dim col As Integer = 0   
 While col < input.InputColumnCollection.Count   
   Dim iCol As IDTSInputColumn100 = input.InputColumnCollection(col)   
   bufferColumnIndex(col) = BufferManager.FindColumnByLineageID(input.Buffer, iCol.LineageID)   
   col -= 1   
 End While   
End Sub  

注解

此方法查找指定列或IDTSOutput100指定IDTSBuffer100IDTSInput100。 此方法是必需的,因为缓冲区的实例包含图形中组件集合中IDTSOutputColumnCollection100定义的所有IDTSOutputColumn100对象。 组件不能依赖其输出列的索引位置或输入列作为缓冲区行中该列的索引。 因此,组件必须用于 FindColumnByLineageID 查找缓冲区中的列。

适用于