如何设置项目参数?

时间:2014-02-24 15:37:32

标签: vb.net ssis

在我尝试执行的SSISDB节点中的一个包中,我有一个包参数和一个项目参数。

我可以通过向execute方法提供ExecutionValueParameterSet来设置package参数。它是这样的:

Dim setValueParameters As New ObjectModel.Collection(Of PackageInfo.ExecutionValueParameterSet)
Dim exp As New PackageInfo.ExecutionValueParameterSet
exp.ObjectType = 30
exp.ParameterName = sp.Name
If sp.Value IsNot Nothing Then
     Select Case sp.TypeCode
          Case TypeCode.String
                exp.ParameterValue = sp.Value
          Case Else
          exp.ParameterValue = Convert.ChangeType(sp.Value, sp.TypeCode)
     End Select
End If

setValueParameters.Add(exp)
package.Execute(use32BitRuntime, er, setValueParameters)

现在,这适用于包参数。但是我无法在项目级别设置参数。

我尝试了以下内容:

package.Parent.Parameters(sp.Name).Set(ParameterInfo.ParameterValueType.Literal, sp.Value)

但是,我仍然会遇到参数丢失的错误。如果我在设置后检查package.Parent.Parameters(sp.Name).ValueSet参数,则为false。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

问题是ObjectType。分配给他们的幻数具有意义。

  • 20项目参数
  • 30包参数
  • 50执行参数

您还可以通过查询集成服务目录了解可用的内容

SELECT * FROM SSISDB.catalog.object_parameters AS OP

另见

Execute SSIS 2012 Package with Parameters via .Net

答案 1 :(得分:0)

感谢@billinkc我发现我应该在同一个ExecutionValueParameterSet上设置项目参数,但是对项目参数使用exp.ObjectType = 20。

答案 2 :(得分:0)