我有一个在 SSIS 数据流中间执行转换的脚本任务。如果脚本失败(比如说它试图将 alpha 转换为数字),我需要它以“失败”状态停止并返回到主包,然后利用 Dataflow 任务事件处理程序OnError正常退出。
目前我发现数据流中的脚本任务返回一个 .net 错误弹出窗口,然后我必须清除它。我在代码周围尝试了一个 Try Catch,这似乎停止了调试窗口的出现,但我似乎无法让它以“失败状态”退出脚本,这将导致包失败。Dts.TaskResult = Dts.Results.Failure 在数据流任务中似乎无效。目前我正在尝试这个:
Catch e As System.Exception
Me.ComponentMetaData.FireError(-1, "", "Error: ", e.Message, 1, True)
While Not e.InnerException Is Nothing
e = e.InnerException
Me.ComponentMetaData.FireError(-1, "", "InnerException: ", e.Message, 1, True)
End While
Exit Sub
End Try
...但这所做的只是跳过坏行。数据流继续。问题是让它以“失败”退出,因此会触发包中的 onError 错误处理程序事件。
任何建议都非常感激。格伦