我对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=sqlintegrationservices
所以我尝试测量行数,以便确定最后一行。不幸的是,行计数转换在处理完所有行时将确定的行计数分配给变量。所以我无法在数据流中使用它。
如何确定数据流中的最后一行,以便我可以单独处理此行?
答案 0 :(得分:2)
您希望在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");
}
}