DTSBufferManagerClass.FindColumnByLineageID(Int32, Int32) 메서드

정의

public:
 virtual int FindColumnByLineageID(int hBufferType, int nLineageID) = Microsoft::SqlServer::Dts::Pipeline::Wrapper::Sql2012::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를 사용하여 버퍼에서 입력 열을 찾는 방법을 보여 줍니다.

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  

설명

이 메서드는 지정된 IDTSBuffer100에서 IDTSBuffer100 또는 IDTSOutput100의 열을 찾습니다. 버퍼 인스턴스에는 그래프에 있는 구성 요소의 IDTSOutputColumnCollection100에 정의된 모든 IDTSOutputColumn100 개체가 포함되어 있기 때문에 이 메서드가 필요합니다. 구성 요소는 출력 열 또는 입력 열의 인덱스 위치를 버퍼 행에서 해당 열의 인덱스로 사용할 수 없습니다. 이 때문에 구성 요소는 FindColumnByLineageID 메서드를 사용하여 버퍼에서 열을 찾아야 합니다.

적용 대상