PipelineComponent.GetDependentInputs(Int32) 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.
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.