2012-02-10 29 views
2

パッケージがあります。foreachループを使用してデータベースをループしています。私は文字列を渡しており、すべてのデータベースをループします。ここまではすべてが完璧です。Foreachループ内の変数をインクリメントして使用する-ISIS

私が達成したいのは、ループする各データベースに対して、変数を1ずつ増やす必要があるということです。合計で5つのデータベースをループする必要があるとします。そして、パッケージレベルの変数(myvariable = 24)は24として宣言されます。ループするデータベースごとに、変数を1つ増やす必要があります。

これはforeachloopコンテナ内にスクリプトタスクを作成したものです。 ReadWriteVariablesをmyvariableとして返します。スクリプトエディタで。私は次のコードを持っています

public void Main() 
     { 
    int varbl = Convert.ToInt32(Dts.Variables["User::myvariable"].Value.ToString()); 
    varbl++ 
     } 

そして、私はその増分値をstoredprocedureに渡しています。しかし、それは増加していません。それはまだ24のデフォルト値を取っています。私はどのようにforeachloopコンテナの変数を増やすことができますか?

答えて

7

作成した変数varblは、スクリプトコンテキストにのみ存在します。あなたは

public void Main() 
{ 
    int varbl = Convert.ToInt32(Dts.Variables["User::myvariable"].Value.ToString()); 
    varbl++; 
    Dts.Variables["User::myvariable"].Value = varbl; 
} 

または変数User::myvariableのような何かをする必要がありSSIS変数をインクリメントする

に変更されることはありません
関連する問題