PipelineComponent.BufferManager Eigenschaft

Definition

Wichtig

Diese API ist nicht CLS-kompatibel.

Es bekommt die IDTSBufferManager100 Pipeline-Komponente.

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

Eigenschaftswert

Das IDTSBufferManager100-Objekt.

Attribute

Beispiele

Das folgende Codebeispiel zeigt, wie man die Eigenschaft BufferManager verwendet, um die Spalten in einer PipelineBuffer Reihe zu finden.

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  

Hinweise

Es BufferManager handelt sich um eine schreibgeschützte Eigenschaft zur Ausführungszeit, die zunächst Komponenten der Methode PreExecute zur Verfügung steht.

Die Methode FindColumnByLineageID wird verwendet, um die Spalten einer Komponente im IDTSInputColumnCollection100 oder IDTSOutputColumnCollection100 der Komponente zu lokalisieren, also in der PipelineBuffer. Dies ist notwendig, da die Anzahl der enthaltenen Spalten die PipelineBuffer von der Komponente erwartete Anzahl der Spalten übersteigen kann.

Die wird BufferManager auch verwendet, um neue IDTSBuffer100 Objekte mit den CreateBufferMethoden , CreateFlatBuffer, und CreateVirtualBuffer zu erstellen. Diese Methoden werden jedoch nicht von verwaltetem Code unterstützt und sollten nur beim Schreiben nativer C++-Komponenten verwendet werden.

Gilt für: