Udostępnij za pośrednictwem


Właściwość PipelineComponent.BufferManager

Pobiera IDTSBufferManager100 składnika potoku.

Ten interfejs API nie jest zgodny ze specyfikacją CLS. 

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Pipeline
Zestaw:  Microsoft.SqlServer.PipelineHost (w Microsoft.SqlServer.PipelineHost.dll)

Składnia

'Deklaracja
<CLSCompliantAttribute(False)> _
Public ReadOnly Property BufferManager As IDTSBufferManager100
    Get
'Użycie
Dim instance As PipelineComponent
Dim value As IDTSBufferManager100

value = instance.BufferManager
[CLSCompliantAttribute(false)]
public IDTSBufferManager100 BufferManager { get; }
[CLSCompliantAttribute(false)]
public:
property IDTSBufferManager100^ BufferManager {
    IDTSBufferManager100^ get ();
}
[<CLSCompliantAttribute(false)>]
member BufferManager : IDTSBufferManager100
function get BufferManager () : IDTSBufferManager100

Uwagi

BufferManager Jest właściwość odczytu tylko, czas wykonania, która jest pierwsze dostępne składniki w PreExecute metoda.

FindColumnByLineageID Metoda jest używana do zlokalizowania kolumn składnika w IDTSInputColumnCollection100 lub IDTSOutputColumnCollection100 składnika, w PipelineBuffer.Jest to konieczne, ponieważ liczba kolumn zawartych w PipelineBuffer może przekraczać liczby kolumn oczekiwanego przez składnik.

BufferManager Jest również używany do tworzenia nowych IDTSBuffer100 obiektów za pomocą CreateBuffer, CreateFlatBuffer, i CreateVirtualBuffer metody.Jednakże metody te nie są obsługiwane z kod zarządzany i powinno być używane tylko podczas pisania składników macierzystym C++.

Przykłady

Poniższy przykład kodu pokazuje sposób używania BufferManager właściwość, aby zlokalizować kolumn w PipelineBuffer wiersza.

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