Partager via


PipelineComponent.GetDependentInputs(Int32) Méthode

Définition

Retourne une collection d'ID des entrées qui attendent davantage de données et donc bloquent l'entrée spécifiée.

public:
 virtual System::Collections::ObjectModel::Collection<int> ^ GetDependentInputs(int blockedInputID);
public virtual System.Collections.ObjectModel.Collection<int> GetDependentInputs (int blockedInputID);
abstract member GetDependentInputs : int -> System.Collections.ObjectModel.Collection<int>
override this.GetDependentInputs : int -> System.Collections.ObjectModel.Collection<int>
Public Overridable Function GetDependentInputs (blockedInputID As Integer) As Collection(Of Integer)

Paramètres

blockedInputID
Int32

ID d'une entrée bloquée pendant que d'autres entrées attendent davantage de données.

Retours

Collection d'ID des entrées qui attendent davantage de données et donc bloquent l'entrée identifiée par le paramètre blockedInputID.

Exemples

Pour une entrée spécifique bloquée, l’implémentation suivante de la GetDependentInputs méthode retourne une collection des entrées qui attendent de recevoir plus de données, et bloquent ainsi l’entrée spécifiée. Le composant identifie les entrées bloquantes en vérifiant les entrées autres que les entrées spécifiées qui n’ont pas actuellement de données disponibles pour traiter dans les mémoires tampons que le composant a déjà reçues (inputBuffers[i].CurrentRow() == null). La méthode GetDependentInputs retourne ensuite la collection d'entrées bloquantes comme une collection d'ID d'entrée.

public override Collection<int> GetDependentInputs(int blockedInputID)  
{  
    Collection<int> currentDependencies = new Collection<int>();  
    for (int i = 0; i < ComponentMetaData.InputCollection.Count; i++)  
    {  
        if (ComponentMetaData.InputCollection[i].ID != blockedInputID  
            && inputBuffers[i].CurrentRow() == null)  
        {  
            currentDependencies.Add(ComponentMetaData.InputCollection[i].ID);  
        }  
    }  

    return currentDependencies;  
}  

Remarques

Lorsque vous définissez la valeur de la propriété true dans le DtsPipelineComponentAttributeMicrosoft.SqlServer.Dts.Pipeline.DtsPipelineComponentAttribute.SupportsBackPressure composant , et que votre composant de flux de données personnalisé prend en charge plus de deux entrées, vous devez également fournir une implémentation pour la GetDependentInputs méthode.

Le moteur de flux de données appelle seulement la méthode GetDependentInputs lorsque l'utilisateur joint plus de deux entrées au composant. Lorsqu’un composant n’a que deux entrées et que la IsInputReady méthode indique qu’une entrée est bloquée (canProcess = false), le moteur de flux de données sait que l’autre entrée attend de recevoir plus de données. Toutefois, lorsqu’il y a plus de deux entrées et que la IsInputReady méthode indique qu’une entrée est bloquée, le code supplémentaire de la GetDependentInputs méthode identifie les entrées qui attendent de recevoir plus de données.

Pour plus d’informations sur la gestion de l’utilisation excessive de la mémoire si les entrées d’un composant de flux de données personnalisé produisent des données à des taux inégales, consultez Développement de composants Data Flow avec plusieurs entrées.

S’applique à