次の方法で共有


PipelineComponent.BufferManager プロパティ

定義

重要

この API は CLS 準拠ではありません。

パイプライン コンポーネントの IDTSBufferManager100 を取得します。

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

プロパティ値

IDTSBufferManager100 オブジェクト。

属性

次のコード例は、BufferManager プロパティを使用して、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  

注釈

BufferManager は、PreExecute メソッドのコンポーネントで最初に利用可能な読み取り専用の実行時プロパティです。

FindColumnByLineageID メソッドは、IDTSInputColumnCollection100 内で、コンポーネントの IDTSOutputColumnCollection100 または PipelineBuffer 内のコンポーネント列を検索するために使用されます。 PipelineBuffer に含まれる列の数はコンポーネントで予測した列の数より多い場合があるため、このメソッドが必要です。

また、BufferManager は、IDTSBuffer100CreateBufferCreateFlatBuffer の各メソッドを使用して新しい CreateVirtualBuffer オブジェクトを作成するためにも使用されます。 ただし、これらのメソッドはマネージド コードではサポートされず、ネイティブ C++ コンポーネントを記述するときにのみ使用されます。

適用対象