PipelineComponent.BufferManager Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Important
Cette API n’est pas conforme CLS.
Obtient le IDTSBufferManager100 de la composante 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 dans 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
Le BufferManager est une propriété de lecture seule, 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 ou IDTSInputColumnCollection100IDTSOutputColumnCollection100 du composant, dans le PipelineBuffer. Cela est nécessaire car le nombre de colonnes contenues dans le PipelineBuffer peut dépasser le nombre de colonnes attendu par la composante.
Le BufferManager est également utilisé pour créer de nouveaux IDTSBuffer100 objets en utilisant les CreateBufferméthodes , CreateFlatBuffer, et CreateVirtualBuffer . Cependant, ces méthodes ne sont pas prises en charge par le code managé et ne doivent être utilisées que lors de l’écriture de composants C++ natifs.