我使用记录集目标在变量中创建数据集。后来在脚本组件(源)中使用只读变量,但是当我尝试在其他脚本组件(源)中使用这个变量时,得到空数据集。我认为第一个脚本组件阻止了我的变量,不明白如何修复它。
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 行第二个 - 无
如果将 Script Component 更改为 Script Task 一切正常。