【问题标题】:Reading project parameters in Script Task在脚本任务中读取项目参数
【发布时间】:2013-12-05 21:42:44
【问题描述】:

这是我在脚本任务中尝试做的事情:

long lngMaxRowsToPull = Convert.ToInt64(Dts.Variables["Project::MaxRowsPerPull"].Value);

我收到一条错误消息,指出该变量不存在。

但它被定义为脚本的 ReadOnlyVariable 并且它确实作为项目参数存在。

【问题讨论】:

    标签: ssis ssis-2012


    【解决方案1】:

    如此接近。 ;)

    您的代码正在尝试访问名为 Project::MaxRowsPerPull 的变量/参数

    其实$很重要,所以你需要引用$Project::MaxRowsPerPull

    还请注意,参数的数据类型为 Int32,但随后将其推入 Int64。您总是可以将较小的类型放入较大的容器中,但如果您尝试用太大的值填充参数,您的包就会爆炸。

    【讨论】:

    • 谢谢,看了没看到!我在写这篇文章时确实注意到了类型差异并已经修复了它。 ))
    • 对于它的价值,这将在脚本任务中工作,但如果它们在包部件中则不行;在这种情况下,在 Package Part 内创建一个变量名,在 Package 内将其重新定义为 Package,然后将表达式 @[$Project::MaxRowsPerPull] 添加到重新定义的变量中。
    • @codeMonkey anything 是否适用于包装部件
    【解决方案2】:

    您需要按照语法将 $ 添加到参数获取名称中。

    long lngMaxRowsToPull = Convert.ToInt64(Dts.Variables["$Project::MaxRowsPerPull"].Value);
    

    【讨论】:

    • 如果您添加一些描述性文本来解释您的代码解决问题的原因以及原因,这将有所帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多