PipelineComponent.PreExecute Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Appelée après la méthode PrepareForExecute() et avant les méthodes PrimeOutput(Int32, Int32[], PipelineBuffer[]) et ProcessInput(Int32, PipelineBuffer).
public:
virtual void PreExecute();
public virtual void PreExecute ();
abstract member PreExecute : unit -> unit
override this.PreExecute : unit -> unit
Public Overridable Sub PreExecute ()
Exemples
L’exemple suivant montre comment localiser les index de colonne des colonnes dans le InputColumnCollection. Ils sont stockés dans une variable locale, puis utilisés dans ProcessInput pour accéder aux colonnes dans .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
Remarques
Les développeurs de composants doivent prendre en compte autant de fonctionnalités PreExecute que possible, car elles sont appelées une fois par composant au lieu d’une fois par mémoire tampon pour ProcessInput. Les composants doivent localiser les index de leurs colonnes d’entrée et de sortie dans le PipelineBuffer en appelant la FindColumnByLineageID méthode du BufferManager.