DTSBufferManagerClass.FindColumnByLineageID(Int32, Int32) Método

Definição

Obtém a localização de uma coluna no objeto IDTSBuffer100 especificado.

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

Parâmetros

hBufferType
Int32

A ID do objeto IDTSBuffer100 que contém a coluna.

nLineageID
Int32

A ID de linhagem da coluna a ser localizada no IDTSBuffer100.

Retornos

Int32

Um inteiro que indica o local, por índice, da coluna no IDTSBuffer100 .

Implementações

Exemplos

O exemplo de código a seguir mostra como um componente de transformação que não tem colunas FindColumnByLineageID de saída usa para localizar suas colunas de entrada no buffer.

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  

Comentários

Esse método localiza a coluna de um IDTSInput100 ou IDTSOutput100 no especificado IDTSBuffer100 . Esse método é necessário porque uma instância de um buffer contém todos os IDTSOutputColumn100 objetos definidos no IDTSOutputColumnCollection100 dos componentes em um grafo. Os componentes não podem contar com o uso do local de índice de uma coluna de saída ou coluna de entrada como o índice dessa coluna em uma linha de buffer. Por isso, os componentes devem usar o FindColumnByLineageID método para localizar as colunas no buffer.

Aplica-se a