DTSBufferManagerClass.FindColumnByLineageID メソッド
指定した IDTSBuffer100 オブジェクト内の列の場所を取得します。
名前空間: Microsoft.SqlServer.Dts.Pipeline.Wrapper
アセンブリ: Microsoft.SqlServer.DTSPipelineWrap (Microsoft.SqlServer.DTSPipelineWrap.dll)
構文
'宣言
Public Overridable Function FindColumnByLineageID ( _
hBufferType As Integer, _
nLineageID As Integer _
) As Integer
'使用
Dim instance As DTSBufferManagerClass
Dim hBufferType As Integer
Dim nLineageID As Integer
Dim returnValue As Integer
returnValue = instance.FindColumnByLineageID(hBufferType, _
nLineageID)
public virtual int FindColumnByLineageID(
int hBufferType,
int nLineageID
)
public:
virtual int FindColumnByLineageID(
[InAttribute] int hBufferType,
[InAttribute] int nLineageID
)
abstract FindColumnByLineageID :
hBufferType:int *
nLineageID:int -> int
override FindColumnByLineageID :
hBufferType:int *
nLineageID:int -> int
public function FindColumnByLineageID(
hBufferType : int,
nLineageID : int
) : int
パラメーター
- hBufferType
型: System.Int32
列を含む IDTSBuffer100 オブジェクトの ID です。
- nLineageID
型: System.Int32
IDTSBuffer100 で検索する列の系列 ID です。
戻り値
型: System.Int32
IDTSBuffer100 内の列の場所をインデックスで示す Integer です。
実装
IDTSBufferManager100.FindColumnByLineageID(Int32, Int32)
説明
このメソッドは、指定した IDTSBuffer100 で IDTSInput100 または 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