PipelineComponent.BufferManager Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.