我正在使用托管对象模型来执行我的SSIS 2012包。
我正在尝试使用PackageInfo.PropertyOverrideParameterSet
覆盖SSIS 2012中自动公开的连接字符串参数。
SSIS PackageInfo
类提供an overloaded Execute
method,允许您传入要在运行时覆盖的参数。这似乎是设置连接字符串的绝佳机会。
要创建PackageInfo.PropertyOverrideParameterSet
object,您需要指定要覆盖的参数的PropertyPath。
需要采用什么格式?
答案 0 :(得分:2)
可以使用PackageInfo.ExecutionValueParameterSet而不是PackageInfo.PropertyOverrideParameterSet来设置连接字符串。连接字符串的ParameterName将遵循格式CM.<connectionManagerName>.ConnectionString
(将<connectionManagerName>
替换为您的连接管理器名称)。在下面的代码段中,我的连接管理器名为B540P.KB1
)。
PackageInfo.ExecutionValueParameterSet evps = new PackageInfo.ExecutionValueParameterSet();
evps.ParameterName = @"CM.B540P.KB1.ConnectionString";
evps.ParameterValue = @"Data Source=B540P;Initial Catalog=AdventureWorks;Integrated Security=True;Application Name=SSIS-Package1-{19035BA0-C90C-47AA-8AF6-31B025779FF6}B540P.KB1;";
evps.ObjectType = 30;
System.Collections.ObjectModel.Collection<PackageInfo.ExecutionValueParameterSet> parms = new System.Collections.ObjectModel.Collection<PackageInfo.ExecutionValueParameterSet>();
parms.Add(evps);
pkg.Execute(false, null, parms, null);
可以使用PackageInfo.PropertyOverrideParameterSet来设置连接字符串,但我不确定PropertyPath会是什么(请参阅下面的SQL Server链接以获取{{3}的示例对于SSIS变量)。
以下是通过不同方法与MOM交互的一些很好的信息: