変数にデータセットを作成するためにレコードセットの宛先を使用します。後でスクリプトコンポーネント(ソース)で変数readonlyを使用しますが、他のスクリプトコンポーネント(ソース)でこの変数を使用しようとすると、空のデータセットが取得されます。最初のスクリプトコンポーネントが私の変数をブロックしたと思いますが、それを修正する方法がわかりません。
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();
2つのスクリプトコンポーネントは等しいコードを使用します最初のコンポーネントは2番目に44行を取得します-なし
スクリプトコンポーネントをスクリプトタスクに変更すると、すべてが正しく機能します。