SSIS - 将数据重定向到不同的输出

时间:2009-01-14 12:40:24

标签: c# sql-server-2005 ssis

我正在开发一个继承自SSIS中的PipelineComponent的自定义组件。

这是代码的“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++;
}

我遇到的问题不是重定向行。该行将其流量保持在“输出”输出中,而不是通过“废弃输出”。

1 个答案:

答案 0 :(得分:0)

我认为两个输出的ExclusionGroup必须相同(make output.ExclusionGroup = 1而不是0)。