Error handling 如何停止SSIS脚本组件以处理数据

Error handling 如何停止SSIS脚本组件以处理数据,error-handling,ssis,Error Handling,Ssis,我正在使用脚本组件作为转换处理一个以不规则分号分隔的文件 该组件能够处理数据并加载到oledb目的地。但当发现错误时,应停止进一步处理。当我使用try-catch块时,组件不会失败,并继续处理直到结束 是否有任何方法可以在不使组件/包失败的情况下停止进一步处理 如果需要任何其他信息/详细信息,请告知我 示例代码: str.split(";"); if(column[0] == "H") { col1=Column[3]; } if(column[0] != "T") { try { Row.

我正在使用脚本组件作为转换处理一个以不规则分号分隔的文件

该组件能够处理数据并加载到oledb目的地。但当发现错误时,应停止进一步处理。当我使用try-catch块时,组件不会失败,并继续处理直到结束

是否有任何方法可以在不使组件/包失败的情况下停止进一步处理

如果需要任何其他信息/详细信息,请告知我

示例代码:

str.split(";");

if(column[0] == "H")
{
col1=Column[3];
}

if(column[0] != "T")
{
try
{
Row.col1=Column[0];
Row.col2=Column[1];
.....
}
catch
{
update the variable to check if we have error in file.
}
}

谢谢您的时间。

一般的想法是,您希望使用try/catch块来确保数据处理本身不会中止。一旦您知道脚本没有向引擎报告故障,不调用
AddRow()

伪码

foreach(line in fileReader)
{
    try
    {
        // perform dangerous operations here
        // Only add row if you have been able to parse current line
        Output0Buffer.AddRow();
        Output0Buffer.Col1 = parsedContent;
    }
    catch
    {
        // Signal that we should break out of the loop
        // do not propagate the error
        // You might want to do something though so you know you 
        // have an incomplete load
        break;
    }

}
如果您希望跳过当前的错误行,可以用上面的
中断
替换
继续


我没有从任何地方得到任何帮助,但作为一种解决方法,我在代码中放置了一个return语句。它检查错误变量,如果它是真的,那么我将返回而不进行进一步处理。但问题仍然是它处理整个文件:(.但它能工作!!!

所以,加载数据,一旦遇到意外情况,停止,但不要失败?是的,它不应该失败。因为下一个文件也应该被处理。你能把源脚本的框架放到问题中吗?我通过给出示例代码更新了原始问题。我使用同步脚本组件作为transformation,所以我不认为我需要一个循环。你能告诉我,不管怎样,每当我在catch块中遇到异常时,我都可以停止它吗?谢谢你能看看上面的场景吗?你遇到上面的场景了吗?谢谢