共用方式為


DTSBufferManagerClass.FindColumnByLineageID Method

Gets the location of a column in the specified IDTSBuffer90 object.

命名空間: Microsoft.SqlServer.Dts.Pipeline.Wrapper
組件: Microsoft.SqlServer.DTSPipelineWrap (in 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
    The ID of the IDTSBuffer90 object that contains the column.
  • nLineageID
    The lineage ID of the column to locate in the IDTSBuffer90.

傳回值

An Integer that indicates the location, by index, of the column in the IDTSBuffer90.

備註

This method locates the column of an IDTSInput90 or IDTSOutput90 in the specified IDTSBuffer90. This method is necessary because an instance of a buffer contains all of the IDTSOutputColumn90 objects defined in the IDTSOutputColumnCollection90 of the components in a graph. Components cannot rely on using the index location of an output column or input column as the index of that column in a buffer row. Because of this, components must use the FindColumnByLineageID method to locate the columns in the buffer.

範例

The following code example shows how a transformation component that does not have output columns uses FindColumnByLineageID to locate its input columns in the buffer.

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

執行緒安全性

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

平台

開發平台

如需受支援的平台清單,請參閱<安裝 SQL Server 2005 的硬體和軟體需求>。

目標平台

如需受支援的平台清單,請參閱<安裝 SQL Server 2005 的硬體和軟體需求>。

請參閱

參考

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