SSIS - перенаправление данных на разные выходы - PullRequest
0 голосов
/ 14 января 2009

Я разрабатываю пользовательский компонент, который наследуется от PipelineComponent в SSIS.

Это фрагмент кода "ProvideComponentProperties":

IDTSOutput90 output = ComponentMetaData.OutputCollection.New();
output.Name = "Output";
output.SynchronousInputID = input.ID;
output.ExclusionGroup =0;
m_DefaultOutputId = output.ID;

IDTSOutput90 discardedOutput = ComponentMetaData.OutputCollection.New();
discardedOutput.Name = "Discarded Output";
discardedOutput.SynchronousInputID = output.SynchronousInputID;
discardedOutput.ExclusionGroup = 1;
//I don't want it to be an output
//discardedOutput.IsErrorOut = true; 
m_DiscardedOutputId = discardedOutput.ID;

А потом в процессе ввода у меня это:

while (buffer.NextRow())
{
    bool discarded = true;
    if  (//Discard condition)
    {
        for (int columnIndex = 0; columnIndex < input.InputColumnCollection.Count; columnIndex++)
        {
            //Write to buffer
        }
        discarded = false;
    }
    if (discarded)
    {
        buffer.DirectRow(discardedOutput.ID);
    }
    rowIndex++;
}

У меня проблема не в том, чтобы перенаправить строку. Строка сохраняет свой поток на выходе «Output» вместо прохождения «Discarded Output».

1 Ответ

0 голосов
/ 10 августа 2010

Я думаю, что ExclusionGroup должна быть одинаковой для обоих выходных данных (сделать output.ExclusionGroup = 1 вместо 0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...