PipelineComponent.BufferManager Propiedad

Definición

Importante

Esta API no es conforme a CLS.

Obtiene la interfaz IDTSBufferManager100 del componente de canalización.

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

En el ejemplo de código siguiente se muestra cómo usar la BufferManager propiedad para buscar las columnas de 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

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

El FindColumnByLineageID método se usa para buscar las columnas de un componente en o IDTSOutputColumnCollection100IDTSInputColumnCollection100 del componente , en .PipelineBuffer Esto es necesario porque el número de columnas contenidas en PipelineBuffer puede superar el número de columnas esperadas por el componente.

BufferManager también se usa para crear nuevos IDTSBuffer100 objetos mediante los CreateBuffermétodos , CreateFlatBuffery CreateVirtualBuffer . Sin embargo, estos métodos no se admiten desde código administrado y solo se deben usar al escribir componentes nativos de C++.

Se aplica a