次の方法で共有


DTSBufferManagerClass.FindColumnByLineageID Method

指定した IDTSBuffer90 オブジェクト内の列の場所を取得します。

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

構文

'宣言
<DispIdAttribute(121)> _
Public Overridable Function FindColumnByLineageID ( _
    <InAttribute> hBufferType As Integer, _
    <InAttribute> nLineageID As Integer _
) As Integer Implements IDTSBufferManager90.FindColumnByLineageID
[DispIdAttribute(121)] 
public virtual int IDTSBufferManager90.FindColumnByLineageID (
    [InAttribute] int hBufferType,
    [InAttribute] int nLineageID
)
[DispIdAttribute(121)] 
public:
virtual int FindColumnByLineageID (
    [InAttribute] int hBufferType, 
    [InAttribute] int nLineageID
) = IDTSBufferManager90::FindColumnByLineageID
J# は明示的なインターフェイス実装の使用をサポートしていますが、新規の宣言はサポートしていません。
JScript は明示的なインターフェイス実装の使用をサポートしていますが、新規の宣言はサポートしていません。

パラメータ

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

戻り値

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

解説

このメソッドは、指定した 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 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

DTSBufferManagerClass Class
DTSBufferManagerClass Members
Microsoft.SqlServer.Dts.Pipeline.Wrapper Namespace