IDTSBufferManager100.FindColumnByLineageID(Int32, Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
透過索引取得指定 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 定位緩衝區中的欄位。