我有一个文件要与使用 SSIS 项目的数据库中的条目进行比较。
在我的 ControlFlow 中,我有“执行 SQL 任务”,它从数据库中获取我想要在“脚本任务”中进行比较的结果列表。这里发生了其他我不知道的事情,但在我到达我的“脚本任务”之前有 for 循环。
我第一次运行它时它工作正常,但是一旦它尝试文件中的第二个条目,它就会丢失数据库结果。我可以通过在 PreExecute() 中填充数据库结果来解决这个问题
private DataTable dt = new DataTable();
public override void PreExecute()
{
base.PreExecute();
OleDbDataAdapter adapter = new OleDbDataAdapter();
//filling results from database into DataTable object
adapter.Fill(dt, this.Variables.AccountFilterVariables);
}
但现在每次它进入 ControlFlow 中的循环时,我都会丢失保存在 this.Variables.AccountFilterVariables 中的结果
我可以通过将“执行 SQL 任务”放入循环中来解决此问题,但我不希望它每次都查询数据库库。我只想查询一次数据库并在项目的整个生命周期内保留 this.Variables.AccountFilterVariables。
我该怎么做呢?我猜它与 PostExecute() 有关,但我不确定是什么。