語言

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

包含該欄位的物件 ID IDTSBuffer100 。

nLineageID
Int32

要在 . 中尋找 IDTSBuffer100欄位的 lineage 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  

備註

此方法將 或 IDTSInput100 的IDTSOutput100欄位定位於指定的 IDTSBuffer100。 此方法之所以必要,是因為緩衝區的實例包含圖中組件集合中定義IDTSOutputColumn100的所有IDTSOutputColumnCollection100物件。 元件不能依賴其輸出欄位或輸入欄位的索引位置作為緩衝區列中該欄位的索引。 因此,元件必須使用 來 FindColumnByLineageID 定位緩衝區中的欄位。

適用於