DTSBufferManagerClass.FindColumnByLineageID(Int32, Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public:
virtual int FindColumnByLineageID(int hBufferType, int nLineageID) = Microsoft::SqlServer::Dts::Pipeline::Wrapper::Sql2014::IDTSBufferManager100::FindColumnByLineageID;
public virtual int FindColumnByLineageID (int hBufferType, int nLineageID);
abstract member FindColumnByLineageID : int * int -> int
override this.FindColumnByLineageID : int * int -> int
Public Overridable Function FindColumnByLineageID (hBufferType As Integer, nLineageID As Integer) As Integer
參數
- hBufferType
- Int32
- nLineageID
- Int32
傳回
整數,表示中資料行的位置(依索引) IDTSBuffer100 。
實作
範例
下列程式碼範例會示範沒有輸出資料行的轉換元件如何使用 FindColumnByLineageID 來找出緩衝區中的輸入資料行。
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
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);
}
}
備註
這個方法會在指定的中尋找或的資料行 IDTSInput100 IDTSOutput100 IDTSBuffer100 。 這個方法是必要的,因為緩衝區的實例包含在 IDTSOutputColumn100 圖形中的元件中定義的所有物件 GetObjectIndexByID 。 元件無法依賴使用輸出資料行或輸入資料行的索引位置作為緩衝區資料列中該資料行的索引。 因此,元件必須使用 FindColumnByLineageID 方法來找出緩衝區中的資料行。