1

我对 SSIS 2014 数据流有疑问。我需要在数据流期间确定行集的最后一行。我需要它在同一数据流中进行进一步处理。使用脚本组件,我尝试了 NextRow() 和 EndOfRowset() 函数。但是,使用以下代码,这些功能不能可靠地工作:

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    if (!Row.NextRow()) // never true.
    {
        MessageBox.Show("last row");
    }

    if (Row.EndOfRowset()) // never true.
    {
        MessageBox.Show("last row");
    }
}

原因是一些缓冲区大小问题,您可以在此处阅读:http ://social.msdn.microsoft.com/Forums/sqlserver/en-US/b07c5324-56ff-48dc-991c-3947aecf1558/endofrowset-doesnt-work?forum =sql集成服务

所以我尝试测量行数,以便确定最后一行。不幸的是,行计数转换在处理所有行时将确定的行计数分配给变量。所以我不能在数据流期间使用它。

如何确定数据流期间的最后一行,以便单独处理该行?

4

1 回答 1

3

您将要在Input0_ProcessInput方法中执行此操作。尝试在您的脚本组件中测试此代码:

public override void Input0_ProcessInput(Input0Buffer Row)
    {
        base.Input0_ProcessInput(Row);

        //Will be true this time
        if (Row.EndOfRowset())
        {
            MessageBox.Show("Last Row");
        }
    }
于 2014-08-24T21:26:36.293 回答