次の方法で共有


DTSBufferManagerClass.FindColumnByLineageID(Int32, Int32) メソッド

定義

指定した IDTSBuffer100 オブジェクト内の列の場所を取得します。

public:
 virtual int FindColumnByLineageID(int hBufferType, int nLineageID) = Microsoft::SqlServer::Dts::Pipeline::Wrapper::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

列を含む 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  

注釈

このメソッドは、指定した IDTSInput100IDTSOutput100 または IDTSBuffer100 の列を検索します。 バッファーのインスタンスには、グラフのコンポーネントの IDTSOutputColumn100 に定義されているすべての IDTSOutputColumnCollection100 オブジェクトが含まれるため、このメソッドが必要です。 コンポーネントは、出力列または入力列のインデックス位置が、バッファー行内のその列のインデックスであると見なすことはできません。 このため、コンポーネントは、バッファー内で列を検索するには、FindColumnByLineageID メソッドを使用する必要があります。

適用対象