首页 > 解决方案 > 结果集为多个变量

问题描述

我正在运行使用多个 Foreach 循环容器并希望同时运行它们。但是,我收到错误消息 -

COM 错误对象信息可用。来源:“ADODB.Recordset”错误代码:0x800A0BCD 描述:“BOF 或 EOF 为 True,或当前记录已被删除。请求的操作需要当前记录。”

显然,一旦一个 Foreach 循环进程完成,结果集就会被删除。

为了解决这个问题,我假设您可以将相同的数据传递给不同的变量,如下所示 -

变量映射

然后在每个循环中只更改 DBList,一个 Foreach 循环是 DBList,另一个是 DBList2 -

For 循环结果集

但是,我收到错误消息 -

为 ResultSetType 返回的结果绑定数无效:“ResultSetType_Rowset”。

是否不可能同时运行多个 Foreach 循环?

标签: ssis

解决方案


您可以同时运行 foreach 循环,但是您必须将结果集放入多个对象类型变量中,并且您还必须有 2 组变量用于每个 foreach 循环的变量映射。

例子:

在此处输入图像描述

您的数据流将包含一个源、多播和 2 个不同的 RecordSet 目标:

在此处输入图像描述

此处的示例源仅返回数字列表的 1 列。我们将其多次转换为 2 个单独的 RecordSet 目标,然后分配给它们自己的对象变量类型。在这个例子中,我有 2 个变量,User::RecordSet1 和 User:RecordSet2。

然后将每个 foreach 循环配置为每个变量:

在此处输入图像描述

然后,每个 foreach 循环都有单独的变量:

在此处输入图像描述

从那里,您需要确保在每个 foreach 循环中的任何代码中都使用了适当的变量集。


推荐阅读