【问题标题】:SSIS For Each Loop Through Result Set每个循环通过结果集的 SSIS
【发布时间】:2020-08-14 22:00:44
【问题描述】:

我有一个从我的查询返回内容的 ADO.NET 数据源。这是一个单列、多行的结果集,我需要遍历这个结果集并通过 JavaScript 单独处理每一行。为此,我使用了一个 foreach 循环容器。

为了测试这一点,我在我的 foreach 循环容器中创建了一个 JavaScript 函数来输出一个带有结果集内容的警报框。

我有以下简单的测试代码:

task.run = function () {
    var myObj = task.variables["User::MyObject"].value;
    alert(myObj);

    return ScriptResults.Success;
};

我知道循环运行良好,因为我收到的警报数也等于我期望的行数。但是,我的 JavaScript 函数似乎没有从数据库中读取实际的返回值。警报只是作为一个空字符串弹出。我不确定我在 JavaScript 中调用对象的方式是否正确,但如果有人能指出正确的方向,让我知道如何让实际的行值出现在警报框中,我将不胜感激。

谢谢!

编辑:我正在为 ForEach 循环容器使用 Foreach ADO 枚举器。

【问题讨论】:

  • “User::MyObject”是 Object 数据类型吗?您使用的是哪个枚举器?
  • 是的,它是对象数据类型。我正在使用 Foreach ADO 枚举器。
  • 您是否在 Foreach 循环编辑器的“变量映射”下为源数据集中的每一列指定了变量?您的代码是否不需要引用这些变量之一,而不是“User::MyObject”,我认为它是您的 ADO 对象源变量?
  • 天哪!我没有!这解决了它。我什至没有意识到我没有具体说明。感谢您指出!

标签: javascript foreach ssis resultset foreach-loop-container


【解决方案1】:

在 Foreach 循环编辑器的“变量映射”下为源数据集中的每一列指定变量。然后,在您的代码中引用该变量。不要引用您的 ADO 对象源变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 2015-01-28
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多