0

是否可以中止 ProcessInputRow 方法中的行处理?我正在对这个函数中传入的 CSV 数据进行一些数据验证。我在一个子中设置行值。如果发生错误,我将在 ProcessInputRow 中捕获它并开始将数据写入临时表以供以后批准。一切正常。问题是带有坏数据的 Row 仍然写入目标表中。

例如,我有一行字符串值为 99-02-2010,我尝试将其作为 CDate 添加到日期列中,如下所示:

Row.ChangeDate = CDate(rowValues.GetValue(0).ToString()) ' => 抛出异常

如上所述,异常是由我通过将行写入我的临时表来引发和处理的。但我找不到通过脚本任务停止处理这一行的方法。有任何想法吗?

问候

4

2 回答 2

1

在您的脚本任务中创建一个新输出并将错误行路由到错误输出(添加适当的错误消息列/描述)。然后将它们路由到您要使用的任何其他表。

于 2010-06-18T15:03:35.563 回答
0

终于搞定了。它现在是 [1] 和 [2] 的组合。我必须手动将输出行添加到我新创建的输出中。然后我能够为无效行映射表。现在我有一个有效的输出和一个无效的行。我在脚本中分配行数据值并将它们定向到相应的输出。

手动创建所有列有点奇怪。但最终它可以正常工作。如果你知道怎么做就容易了。谢谢你的意见。

[1] http://agilebi.com/cs/blogs/jwelch/archive/2007/05/08/handling-flat-files-with-varying-numbers-of-columns.aspx

[2] http://consultingblogs.emc.com/jamiethomson/archive/2005/09/05/SSIS-Nugget_3A00_-Multiple-outputs-from-a-synchronous-script-transform.aspx

于 2010-06-21T08:11:56.107 回答