2012-05-02 5 views
1

変数のcreate datasetのレコードセット先を使用します。 後でスクリプトコンポーネント(ソース)でreadonly変数を使用しますが、この変数を他のスクリプトコンポーネント(ソース)で使用しようとすると、空のデータセットが取得されます。私は最初のScript Componentが私の変数をブロックしたと思っています。変更スクリプトコンポーネントスクリプトへのタスクのすべてが正しく動作した場合は何もSSISパッケージで変数データセットを2回使用する方法

-

VariableDispenser variableDispenser = (VariableDispenser)this.VariableDispenser; 
     variableDispenser.LockForRead("User::dsOrganization"); 
     IDTSVariables100 vars; 
     variableDispenser.GetVariables(out vars); 

     OleDbDataAdapter oleDA = new OleDbDataAdapter(); 
     DataTable dt = new DataTable(); 
     var ds = vars["User::dsOrganization"].Value; 
     oleDA.Fill(dt, ds); 
     foreach (DataRow dr in dt.Rows) 
     { 
      Output0Buffer.AddRow(); 
      Output0Buffer.Organization = dr["Organization"].ToString(); 
      Output0Buffer.OrganizationCode = dr["OrganizationCode"].ToString(); 
      Output0Buffer.SPOrganizationCode = dr["SPOrganizationCode"].ToString(); 
      Output0Buffer.SPOrganizationMember = dr["SPOrganizationMember"].ToString(); 
     } 
     vars.Unlock(); 

二つは、スクリプトコンポーネントは、第44行を取得しない同等のコード最初のコンポーネントを使用します。

+0

郵便番号 - 私たちはそれなしで把握することはできません。 –

答えて

1

問題は、列挙子のポインタが2度目にループするときにレコードセットの最後にあることです。レコードセットをデータセットにロードする前に、そのレコードセットを複製してみてください。

しかし、大きなデータセットを変数に読み込むことは避けてください。フローの設計を評価し最適化してみてください。