Condividi tramite


PipelineComponent.BufferManager Proprietà

Definizione

Importante

Questa API non è conforme a CLS.

Ottiene l'oggetto IDTSBufferManager100 del componente 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

Valore della proprietà

Oggetto IDTSBufferManager100.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare la BufferManager proprietà per individuare le colonne in una PipelineBuffer riga.

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  

Commenti

L'oggetto BufferManager è una proprietà di sola lettura e tempo di esecuzione che è prima disponibile per i componenti nel PreExecute metodo.

Il FindColumnByLineageID metodo viene usato per individuare le colonne di un componente nell'oggetto IDTSInputColumnCollection100 o IDTSOutputColumnCollection100 del componente, nell'oggetto PipelineBuffer. Ciò è necessario perché il numero di colonne contenute nell'oggetto PipelineBuffer può superare il numero di colonne previste dal componente.

Viene BufferManager usato anche per creare nuovi IDTSBuffer100 oggetti usando i CreateBuffermetodi , CreateFlatBuffere CreateVirtualBuffer . Tuttavia, questi metodi non sono supportati dal codice gestito e devono essere usati solo quando si scrivono componenti C++ nativi.

Si applica a