Aracılığıyla paylaş


PipelineComponent.PreExecute Yöntemi

Sonra adı verilen PrepareForExecuteve önce PrimeOutput ve ProcessInput.

Ad Alanı:  Microsoft.SqlServer.Dts.Pipeline
Derleme:  Microsoft.SqlServer.PipelineHost (Microsoft.SqlServer.PipelineHost içinde.dll)

Sözdizimi

'Bildirim
Public Overridable Sub PreExecute
'Kullanım
Dim instance As PipelineComponent

instance.PreExecute()
public virtual void PreExecute()
public:
virtual void PreExecute()
abstract PreExecute : unit -> unit 
override PreExecute : unit -> unit 
public function PreExecute()

Açıklamalar

Bileşen geliştiricileri işlevselliği içine çarpan PreExecute olabildiğince bir denir çünkü saat yerine, bir bileşen başına saat için arabellek başına ProcessInput.Bileşenler, giriş ve çıkış sütunları dizinleri bulmak PipelineBuffer çağırarak FindColumnByLineageID yöntem, BufferManager.

Örnekler

Aşağıdaki örnek sütun sütun dizinleri bulmak nasıl gösterir InputColumnCollection.Bir yerel değişkende saklanır ve daha sonra kullanılan ProcessInput sütunlarında erişmek için PipelineBuffer.

int[] bufferColumnIndex;
public override void PreExecute()
{
    IDTSInput100 input = ComponentMetaData.InputCollection[0];
    bufferColumnIndex = new int[input.InputColumnCollection.Count];
    for ( int x=0; x < input.InputColumnCollection.Count; x++)
    {
        bufferColumnIndex[x] = BufferManager.FindColumnByLineageID( input.Buffer, input.InputColumnCollection[x].LineageID);
    }
}
public override void ProcessInput( int inputID, PipelineBuffer buffer )
{
    while( buffer.NextRow() )
    {
        for( int x=0; x < bufferColumnIndex.Length(); x++ )
        {
            if( !buffer.IsNull(bufferColumnIndex[x]))
            {
                // TODO: Access the column data.
            }
        }
    }
}
Private bufferColumnIndex As Integer() 

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

Public Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As PipelineBuffer) 
 While buffer.NextRow 
   Dim x As Integer = 0 
   While x < bufferColumnIndex.Length 
     If Not buffer.IsNull(bufferColumnIndex(x)) Then 
     End If 
     x -= 1
   End While 
 End While 
End Sub