PipelineComponent.GetDependentInputs(Int32) Metodo

Definizione

Restituisce una raccolta di ID degli input in attesa di più dati e che pertanto bloccano 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

ID di un input bloccato mentre altri input sono in attesa di più dati.

Restituisce

Collection<Int32>

Raccolta di ID degli input in attesa di più dati e che pertanto bloccano l'input identificato dal parametro blockedInputID.

Esempio

Per un input specifico bloccato, l'implementazione seguente del GetDependentInputs metodo restituisce una raccolta degli input in attesa di ricevere più dati e pertanto bloccano l'input specificato. Il componente identifica gli input di blocco verificando la presenza di input diversi dall'input specificato che attualmente non dispongono di dati disponibili per l'elaborazione nei buffer già ricevuti dal componente ( inputBuffers[i].CurrentRow() == null ). Il metodo GetDependentInputs restituisce quindi la raccolta di input di blocco 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 si imposta il valore della Microsoft.SqlServer.Dts.Pipeline.DtsPipelineComponentAttribute.SupportsBackPressure proprietà su true in DtsPipelineComponentAttribute e il componente flusso di dati personalizzato supporta più di due input, è necessario fornire anche un'implementazione per il GetDependentInputs metodo.

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

Per ulteriori informazioni sulla gestione di un utilizzo eccessivo della memoria se gli input di un componente flusso di dati personalizzato producono dati a frequenze dispari, vedere sviluppo di componenti flusso di dati con più input.

Si applica a