我有一个脚本任务,它在SSIS数据流中执行转换。如果脚本失败(例如,尝试将字母转换为数字),我需要它停止并返回到主包,并利用数据流任务事件处理程序OnError来优雅地退出。
目前我发现数据流中的脚本任务返回一个 .net 错误弹窗,我必须清除它。我尝试了围绕代码的Try Catch,它似乎可以防止出现调试窗口,但我无法让它以导致包失败的“失败状态”退出脚本。在数据流任务中,Dts.TaskResult = Dts.Results.Failure 似乎无效。目前我正在尝试以下方法:
目前我发现数据流中的脚本任务返回一个 .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错误处理程序事件。
非常感谢您提出的任何建议。 格伦