次の方法で共有


IDTSBufferManager90.FindColumnByLineageID Method

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

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

構文

'宣言
<DispIdAttribute(121)> _
Function FindColumnByLineageID ( _
    <InAttribute> hBufferType As Integer, _
    <InAttribute> nLineageID As Integer _
) As Integer
[DispIdAttribute(121)] 
int FindColumnByLineageID (
    [InAttribute] int hBufferType,
    [InAttribute] int nLineageID
)
[DispIdAttribute(121)] 
int FindColumnByLineageID (
    [InAttribute] int hBufferType, 
    [InAttribute] int nLineageID
)
/** @attribute DispIdAttribute(121) */ 
int FindColumnByLineageID (
    /** @attribute InAttribute() */ int hBufferType, 
    /** @attribute InAttribute() */ int nLineageID
)
DispIdAttribute(121) 
function FindColumnByLineageID (
    hBufferType : int, 
    nLineageID : int
) : int

パラメータ

  • hBufferType
    列を含む IDTSBuffer90 オブジェクトの ID です。
  • nLineageID
    IDTSBuffer90 で検索する列の系列 ID です。

戻り値

IDTSBuffer90 内の列の場所をインデックスで示す整数です。

解説

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

使用例

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

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

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

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

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

IDTSBufferManager90 Interface
IDTSBufferManager90 Members
Microsoft.SqlServer.Dts.Pipeline.Wrapper Namespace