PipelineComponent.BufferManager Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Penting
API ini bukan kompatibel CLS.
IDTSBufferManager100 Mendapatkan komponen alur.
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
Nilai Properti
Objek IDTSBufferManager100.
- Atribut
Contoh
Contoh kode berikut menunjukkan cara menggunakan BufferManager properti untuk menemukan kolom dalam baris PipelineBuffer .
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
Keterangan
BufferManager adalah properti baca-saja, waktu eksekusi yang pertama kali tersedia untuk komponen dalam PreExecute metode .
Metode FindColumnByLineageID ini digunakan untuk menemukan kolom komponen di IDTSInputColumnCollection100 atau IDTSOutputColumnCollection100 komponen, di PipelineBuffer. Ini diperlukan karena jumlah kolom yang terkandung dalam PipelineBuffer mungkin melebihi jumlah kolom yang diharapkan oleh komponen.
BufferManager juga digunakan untuk membuat objek baru IDTSBuffer100 menggunakan CreateBuffermetode , CreateFlatBuffer, dan CreateVirtualBuffer . Namun, metode ini tidak didukung dari kode terkelola, dan hanya boleh digunakan saat menulis komponen C++ asli.