PipelineComponent.BufferManager Propiedad

Definición

Importante

Esta API no es conforme a CLS.

Obtiene el IDTSBufferManager100 del componente de la pipeline.

public:
 property Microsoft::SqlServer::Dts::Pipeline::Wrapper::IDTSBufferManager100 ^ BufferManager { Microsoft::SqlServer::Dts::Pipeline::Wrapper::IDTSBufferManager100 ^ get(); };
[System.CLSCompliant(false)]
public Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSBufferManager100 BufferManager { get; }
[<System.CLSCompliant(false)>]
member this.BufferManager : Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSBufferManager100
Public ReadOnly Property BufferManager As IDTSBufferManager100

Valor de propiedad

Objeto IDTSBufferManager100.

Atributos

Ejemplos

El siguiente ejemplo de código muestra cómo usar la BufferManager propiedad para localizar las columnas en una PipelineBuffer fila.

using System;  
using Microsoft.SqlServer.Dts.Pipeline;  
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;  
using Microsoft.SqlServer.Dts.Runtime.Wrapper;  

namespace Microsoft.Samples.SqlServer.Dts  
{  
    public class SampleComponent : PipelineComponent  
    {  
        public override void ProcessInput( int InputID, PipelineBuffer buffer )  
        {  
            IDTSInput100 i = ComponentMetaData.InputCollection.GetObjectByID( InputID );  
            foreach( IDTSInputColumn100 col in i.InputColumnCollection)  
            {  
                int colIndex = BufferManager.FindColumnByLineageID(i.Buffer, col.LineageID);  
                BufferColumn bc =buffer.GetColumnInfo(colIndex);  
            }  
        }  
    }  
}  
Imports System   
Imports Microsoft.SqlServer.Dts.Pipeline   
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper   
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper   
Namespace Microsoft.Samples.SqlServer.Dts   

 Public Class SampleComponent   
 Inherits PipelineComponent   

   Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal buffer As PipelineBuffer)   
     Dim i As IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(InputID)   
     For Each col As IDTSInputColumn100 In i.InputColumnCollection   
       Dim colIndex As Integer = BufferManager.FindColumnByLineageID(i.Buffer, col.LineageID)   
       Dim bc As BufferColumn = buffer.GetColumnInfo(colIndex)   
     Next   
   End Sub   
 End Class   
End Namespace  

Comentarios

Es BufferManager una propiedad de solo lectura en tiempo de ejecución que está disponible primero para los componentes del PreExecute método.

El FindColumnByLineageID método se utiliza para localizar las columnas de un componente en el IDTSInputColumnCollection100 o IDTSOutputColumnCollection100 del componente, en el PipelineBuffer. Esto es necesario porque el número de columnas contenidas en el PipelineBuffer puede superar el número de columnas esperado por el componente.

El BufferManager también se utiliza para crear nuevos IDTSBuffer100 objetos usando los CreateBuffermétodos , CreateFlatBuffer, y CreateVirtualBuffer . Sin embargo, estos métodos no son compatibles con código gestionado y solo deben usarse al escribir componentes nativos en C++.

Se aplica a