Bagikan melalui


PipelineComponent.BufferManager Properti

Definisi

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.

Berlaku untuk