DTSBufferManagerClass.FindColumnByLineageID(Int32, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 de saída usa FindColumnByLineageID 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 nos IDTSOutputColumnCollection100 componentes em um grafo. Os componentes não podem depender do uso do local do í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.