PipelineComponent.BufferManager Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.