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à

IDTSBufferManager100

Oggetto IDTSBufferManager100.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare 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

BufferManagerÈ una proprietà di sola lettura, in fase di esecuzione, disponibile per la prima volta per i componenti nel PreExecute metodo.

Il FindColumnByLineageID metodo viene utilizzato per individuare le colonne di un componente in IDTSInputColumnCollection100 o IDTSOutputColumnCollection100 del componente, in PipelineBuffer . Questa operazione è necessaria perché il numero di colonne contenute in PipelineBuffer può superare il numero di colonne previsto dal componente.

BufferManagerViene inoltre usato per creare nuovi IDTSBuffer100 oggetti usando i CreateBuffer metodi, CreateFlatBuffer e CreateVirtualBuffer . Tuttavia, questi metodi non sono supportati dal codice gestito e devono essere usati solo per la scrittura di componenti C++ nativi.

Si applica a