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."
私がここに欠けているものはありますか?
ありがとう!