我正在尝试向 SSIS C# 脚本组件(在数据流中)添加更多本机错误处理。现在我强迫它用 1/0 使组件崩溃,这可行但很骇人听闻。
我的脚本对输入数据做了一些爵士乐,但我想在几个步骤中验证它,如果任何验证失败,则组件失败。源是一个选择,所以我不需要回滚任何事务等......但我希望组件使数据流失败,因此数据流组件将失败并遵循我在控制流中规定的错误处理。
这是阻碍我的最简单的相关片段:
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
public override void PreExecute()
{
base.PreExecute();
/*
Add your code here for preprocessing or remove if not needed
*/
bool pbCancel = false;
////check Row Count>0
if (Variables.WeeklyLRrowCount == 0)
this.ComponentMetaData.FireError(-1, "", "Fails Validation due to Empty Table.", "", 0, out pbCancel);
}
public override void PostExecute()
{
base.PostExecute();
/*
Add your code here for postprocessing or remove if not needed
You can set read/write variables here, for example:
Variables.MyIntVar = 100
*/
}
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
/*
Add your code here
*/
}
}
我从 SSIS 得到以下信息:
"The name 'FireError' does not exist in the current context."
我在这里缺少什么吗?
谢谢!