Condividi tramite


PipelineComponent.PreExecute Metodo

Definizione

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

Esempio

Nell'esempio seguente viene illustrato come individuare gli indici di colonna delle colonne in InputColumnCollection. Vengono archiviati in una variabile locale e quindi usati in ProcessInput per accedere alle colonne 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  

Commenti

Gli sviluppatori di componenti devono considerare la maggior parte delle funzionalità PreExecute possibile perché viene chiamata una volta per ogni componente anziché una volta per buffer per ProcessInput. I componenti devono individuare gli indici delle colonne di input e output in PipelineBuffer chiamando il FindColumnByLineageID metodo di BufferManager.

Si applica a