Bagikan melalui


PipelineComponent.PreExecute Metode

Definisi

public:
 virtual void PreExecute();
public virtual void PreExecute ();
abstract member PreExecute : unit -> unit
override this.PreExecute : unit -> unit
Public Overridable Sub PreExecute ()

Contoh

Contoh berikut menunjukkan cara menemukan indeks kolom kolom di InputColumnCollection. Mereka disimpan dalam variabel lokal dan kemudian digunakan untuk ProcessInput mengakses kolom di 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  

Keterangan

Pengembang komponen harus memperhitungkan PreExecute fungsionalitas sebanyak mungkin karena disebut satu kali per komponen alih-alih satu kali per buffer untuk ProcessInput. Komponen harus menemukan indeks kolom input dan outputnya di PipelineBuffer dengan memanggil FindColumnByLineageID metode BufferManager.

Berlaku untuk