SSIS - 如何使脚本组件失败任务?

时间:2013-06-18 08:58:18

标签: ssis

我有一个脚本组件(脚本转换),我需要能够使DFT失败,即它所属的数据流任务。

我正在解决像这样的错误

try
{
   // Does some work here, which can fail...
}
catch (Exception ex)
{
   bool pbCancel = false;
   this.ComponentMetaData.FireError(0, Variables.TaskName, "Error message: " + ex.Message, String.Empty, 0, out pbCancel);
}

但是,FireError不会导致任务失败。

注意这是数据转换任务中的脚本组件 - 而不是脚本任务。

如何从脚本组件中完成此任务?

2 个答案:

答案 0 :(得分:0)

这应该是您正在寻找的 - 2008 R2 C#脚本组件。

bool fireAgain = true;
IDTSComponentMetaData100 myMetaData;
myMetaData = this.ComponentMetaData;

//for information
myMetaData.FireInformation(0, "SubComponent", "Description", string.Empty, 0, ref fireAgain);
//for error
myMetaData.FireError(0, "SubComponent", ex.Message.ToString() + ex.StackTrace, string.Empty, 0, out fireAgain);

答案 1 :(得分:0)

在您的示例中,您正在捕获异常,但未引发异常。只需添加

catch (Exception ex)
{
    // ... your other code here
    throw ex;
}

,该组件将失败。