Linguaggio

PipelineComponent.GetDependentInputs(Int32) Metodo

Definizione

Restituisce una raccolta degli ID degli input degli input che aspettano altri dati, bloccando quindi l'input specificato.

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)

Parametri

blockedInputID
Int32

L'ID di un input bloccato mentre altri input aspettano altri dati.

Valori restituiti

Una raccolta degli ID degli input degli input che attendono altri dati e quindi bloccano l'input identificato dal blockedInputID parametro.

Esempio

Per un input specifico bloccato, la successiva implementazione del GetDependentInputs metodo restituisce una raccolta degli input che aspettano di ricevere altri dati, bloccando quindi l'input specificato. Il componente identifica gli ingressi bloccanti controllando la presenza di ingressi diversi da quello specificato che attualmente non dispongono di dati disponibili da elaborare nei buffer che il componente ha già ricevuto (inputBuffers[i].CurrentRow() == null). Il GetDependentInputs metodo restituisce quindi la collezione di input bloccanti come una raccolta di ID di input.

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;  
}  

Commenti

Quando imposti il valore della Microsoft.SqlServer.Dts.Pipeline.DtsPipelineComponentAttribute.SupportsBackPressure proprietà a trueDtsPipelineComponentAttribute, e il tuo componente custom data flow supporta più di due input, allora devi fornire anche un'implementazione per il GetDependentInputs metodo.

Il motore di flusso dati chiama il GetDependentInputs metodo solo quando l'utente collega più di due ingressi al componente. Quando un componente ha solo due ingressi, e il IsInputReady metodo indica che uno è bloccato (canProcess = false), il motore di flusso dati sa che l'altro ingresso è in attesa di ricevere altri dati. Tuttavia, quando ci sono più di due input e il IsInputReady metodo indica che un input è bloccato, il codice extra nel GetDependentInputs metodo identifica gli input che attendono di ricevere altri dati.

Per maggiori informazioni sulla gestione dell'uso eccessivo di memoria se gli ingressi di un componente custom data flow producono dati a velocità disomogene, vedi Developing Flusso di dati Components with Multiple Inputs.

Si applica a