Freigeben über


PipelineComponent.BufferManager Eigenschaft

Definition

Wichtig

Diese API ist nicht CLS-kompatibel.

Ruft den IDTSBufferManager100 der Pipelinekomponente ab.

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

Im folgenden Codebeispiel wird gezeigt, wie die BufferManager Eigenschaft zum Suchen der Spalten in einer PipelineBuffer Zeile verwendet wird.

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

Dies BufferManager ist eine schreibgeschützte Ausführungszeiteigenschaft, die zuerst komponenten in der PreExecute Methode zur Verfügung steht.

Die FindColumnByLineageID Methode wird verwendet, um die Spalten einer Komponente in der IDTSInputColumnCollection100 Komponente IDTSOutputColumnCollection100 oder in der Komponente in der PipelineBuffer. Dies ist erforderlich, da die Anzahl der spalten, die in der PipelineBuffer Komponente enthalten sind, die Anzahl der spalten überschreiten kann, die von der Komponente erwartet werden.

Dies BufferManager wird auch verwendet, um neue IDTSBuffer100 Objekte mithilfe der CreateBufferMethoden CreateFlatBuffer, und CreateVirtualBuffer methoden zu erstellen. Diese Methoden werden jedoch nicht von verwaltetem Code unterstützt und sollten nur verwendet werden, wenn systemeigene C++-Komponenten geschrieben werden.

Gilt für: