次の方法で共有


IDTSBufferManager100.FindColumnByLineageID メソッド

指定した IDTSBuffer100 オブジェクト内の列の場所を示すインデックスを取得します。

名前空間:  Microsoft.SqlServer.Dts.Pipeline.Wrapper
アセンブリ:  Microsoft.SqlServer.DTSPipelineWrap (Microsoft.SqlServer.DTSPipelineWrap.dll)

構文

'宣言
Function FindColumnByLineageID ( _
    hBufferType As Integer, _
    nLineageID As Integer _
) As Integer
'使用
Dim instance As IDTSBufferManager100 
Dim hBufferType As Integer 
Dim nLineageID As Integer 
Dim returnValue As Integer 

returnValue = instance.FindColumnByLineageID(hBufferType, _
    nLineageID)
int FindColumnByLineageID(
    int hBufferType,
    int nLineageID
)
int FindColumnByLineageID(
    [InAttribute] int hBufferType, 
    [InAttribute] int nLineageID
)
abstract FindColumnByLineageID : 
        hBufferType:int * 
        nLineageID:int -> int
function FindColumnByLineageID(
    hBufferType : int, 
    nLineageID : int
) : int

パラメーター

戻り値

型: System.Int32
IDTSBuffer100 内の列の場所をインデックスで示す整数です。

説明

このメソッドは、指定した IDTSBuffer100IDTSInput100 または IDTSOutput100 の列を検索します。 バッファーのインスタンスには、グラフのコンポーネントの IDTSOutputColumnCollection100 コレクションに定義されているすべての IDTSOutputColumn100 オブジェクトが含まれるため、このメソッドが必要です。 コンポーネントは、出力列または入力列のインデックス位置が、バッファー行内のその列のインデックスであると見なすことはできません。 このため、コンポーネントは、バッファー内で列を検索するには、FindColumnByLineageID を使用する必要があります。

使用例

次のコード例では、出力列を持っていない変換コンポーネントが FindColumnByLineageID を使用してバッファー内の入力列を検索します。

int[] bufferColumnIndex;
public override void PreExecute()
{
    IDTSInput100 input = ComponentMetaData.InputCollection[0];
    bufferColumnIndex = new int[BufferManager.GetColumnCount(input.Buffer)];

    for( int col=0; col < input.InputColumnCollection.Count; col++)
    {
        IDTSInputColumn100 iCol = input.InputColumnCollection[col];
        bufferColumnIndex[col] = BufferManager.FindColumnByLineageID(input.Buffer, iCol.LineageID);
    }
}
Private bufferColumnIndex As Integer() 

Public Overloads Overrides Sub PreExecute() 
 Dim input As IDTSInput100 = ComponentMetaData.InputCollection(0) 
 bufferColumnIndex = New Integer(BufferManager.GetColumnCount(input.Buffer) - 1) {} 
 Dim col As Integer = 0 
 While col < input.InputColumnCollection.Count 
   Dim iCol As IDTSInputColumn100 = input.InputColumnCollection(col) 
   bufferColumnIndex(col) = BufferManager.FindColumnByLineageID(input.Buffer, iCol.LineageID) 
   col -= 1 
 End While 
End Sub

関連項目

参照

IDTSBufferManager100 インターフェイス

Microsoft.SqlServer.Dts.Pipeline.Wrapper 名前空間