以编程方式更改SSIS中的变量范围
Changing variable scope in SSIS programatically
有没有办法以编程方式更改 SSIS 中的变量范围?
例如,这个变量将在包级别创建:
package.Variables.Add("sSourceObjectId", false, "User", 1);
但我需要在 OnError 范围内创建变量,因为系统变量 ErrorCode 在包级别不可见。
您需要访问特定 Task/Container
上的变量集合
以下代码创建一个 SSIS 包,该包在包级别具有 OnError 事件处理程序。在该事件处理程序 eh
上,我添加了变量 sSourceObjectId
string path = @"C:\ssisdata\p1.dtsx";
Application app = new Application();
Package pkg = new Package();
pkg.Name = "so_29925774";
DtsEventHandler eh = pkg.EventHandlers.Add("OnError") as DtsEventHandler;
eh.Variables.Add("sSourceObjectId", false, "User", 1);
app.SaveToXml(path, pkg, null);
生成的包
您可以看到该变量的作用域是 OnError 事件,而不是包本身。
有没有办法以编程方式更改 SSIS 中的变量范围?
例如,这个变量将在包级别创建:
package.Variables.Add("sSourceObjectId", false, "User", 1);
但我需要在 OnError 范围内创建变量,因为系统变量 ErrorCode 在包级别不可见。
您需要访问特定 Task/Container
上的变量集合以下代码创建一个 SSIS 包,该包在包级别具有 OnError 事件处理程序。在该事件处理程序 eh
上,我添加了变量 sSourceObjectId
string path = @"C:\ssisdata\p1.dtsx";
Application app = new Application();
Package pkg = new Package();
pkg.Name = "so_29925774";
DtsEventHandler eh = pkg.EventHandlers.Add("OnError") as DtsEventHandler;
eh.Variables.Add("sSourceObjectId", false, "User", 1);
app.SaveToXml(path, pkg, null);
生成的包
您可以看到该变量的作用域是 OnError 事件,而不是包本身。