Partager via


PipelineComponent.BufferManager Propriété

Définition

Important

Cette API n’est pas conforme CLS.

Obtient l'objet IDTSBufferManager100 du composant de 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

Valeur de propriété

Objet IDTSBufferManager100.

Attributs

Exemples

L’exemple de code suivant montre comment utiliser la BufferManager propriété pour localiser les colonnes d’une PipelineBuffer ligne.

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  

Remarques

Il BufferManager s’agit d’une propriété en lecture seule et en temps d’exécution qui est d’abord disponible pour les composants de la PreExecute méthode.

La FindColumnByLineageID méthode est utilisée pour localiser les colonnes d’un composant dans le IDTSInputColumnCollection100 ou IDTSOutputColumnCollection100 du composant, dans le PipelineBuffer. Cela est nécessaire, car le nombre de colonnes contenues dans le PipelineBuffer composant peut dépasser le nombre de colonnes attendues par le composant.

Il BufferManager est également utilisé pour créer de nouveaux IDTSBuffer100 objets à l’aide des méthodes, CreateFlatBufferet CreateVirtualBuffer des CreateBufferméthodes. Toutefois, ces méthodes ne sont pas prises en charge à partir du code managé et doivent uniquement être utilisées lors de l’écriture de composants C++ natifs.

S’applique à