gpt4 book ai didi

c# - 在进程终止时更新 SSIS 自定义组件中的变量不持久

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:19 25 4
gpt4 key购买 nike

我目前正在开发一个 ssis 自定义组件,在设计时我创建了一个用户变量并在我想要的任何时候更新它。

现在,当我执行包时,在 PrimeOutput 方法中我成功更新了变量,但是当进程终止时变量不是持久的,我得到的唯一值是旧值。这是我更新变量的方式:

IDTSVariables100 variables = null;
VariableDispenser.LockOneForWrite(name, ref variables);
variables[name].Value = newValue;
variables.Unlock();

最佳答案

假设你的变量名是MyVar

 VariableDispenser variableDispenser = (VariableDispenser)this.VariableDispenser;
variableDispenser.LockForWrite("User::myVar");

IDTSVariables100 vars;
variableDispenser.GetVariables(out vars);

// Set the variable
vars["User::myVar"].Value = newValue;

// Unlock the variable
vars.Unlock();

有关更多信息,您可以引用这个有用的链接:

更新 1

阅读您的评论后 “但在包执行完毕后,变量重置为旧值”

默认情况下存储在包文件中的变量值是您在设计包时指定的值(以编程方式或使用 visual studio)

此外,如果在脚本中更改变量值,它只会在执行时更改值,并且无法从同一 DataFlow Task 中的另一个组件读取新值,该值将在当前DataFlow Task执行完毕

有用的链接

如果您有兴趣以编程方式编辑包,您可以引用以下链接

关于c# - 在进程终止时更新 SSIS 自定义组件中的变量不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com