我有一个ForEach循环容器,它应该遍历Ado枚举器中的记录。 Enumberation模式=第一个表中的行。
我构建了一个脚本任务来为每次迭代编写一个MessageBox。它仅显示第一次迭代的消息。之后就挂了。
我尝试构建解决方案并运行包,它运行正常。但在开发/设计领域,它仍然存在。
它应该如何在设计模式下工作?如果在调试它时它会挂起,我如何测试Foreach容器下游的东西?
答案 0 :(得分:3)
当SSIS在Visual Studio / BIDS / SSDT中运行时,它似乎挂起,特别是如果有脚本任务,请查看任务栏。 11/10出现一个对话框,表明您的代码中存在错误。
当您弹出消息框时,第一个消息框会在打开时获得焦点,但随后的消息框不会自动获得焦点。
我个人倾向于通过消息框发送FireInformation
个事件,因为无论过程是在有人模式还是无人参与模式下运行,它们都可以正常运行。示例here
答案 1 :(得分:0)
不,ForEachLoop
在设计模式下的工作方式与部署到服务器时的工作方式相同。如果你看到它只迭代一次,那么最可能的解释是只有一个项目可以迭代,而你的数据并不是你想象的那样。
正如评论中所建议的,您可以在循环之前和/或循环期间的某个点上设置断点,并使用Watches查看变量以查看它们的值。这应该可以让您了解ADO对象仅包含单个项目的原因。
答案 2 :(得分:0)
我也遇到了这个问题,我做到了。
希望有帮助。