【问题标题】:SSIS - How to get the UserName system variable in a custom component in SSISSSIS - 如何在 SSIS 的自定义组件中获取 UserName 系统变量
【发布时间】:2020-09-15 18:39:22
【问题描述】:

有没有办法在自定义组件中获取启动包的用户的用户名?我知道如何在脚本组件和脚本任务中使用,但我正在寻找如何在用户创建的自定义 SSIS 组件中?

谢谢!

【问题讨论】:

  • 应该大致相同,但您可能必须通过 VariableDispenser 方法。 docs.microsoft.com/en-us/dotnet/api/… 我已经有十年没有花时间使用自定义组件了。由于您指定了组件,您可能需要在 PreExecute 阶段访问它。否则,您需要向我展示一些示例代码,让我的大脑重新投入到游戏中。样本在 CodePlex 上,我不知道他们转移到 github 上的效果如何
  • @billinkc 是的,您需要使用 VariableDispenser 方法是正确的。我太快在谷歌搜索中发布了这个问题!在我发布这个问题后,我刚刚找到了答案。感谢您的回答和帮助!
  • 给自己一些分数并将其作为答案发布,以便在十年后,下一个人在他们的指尖找到一个好的答案
  • 我同意,请花时间发布您所做的解释。那么这将不会是您在没有答案的情况下找到完全正确的问题的谷歌搜索之一
  • 谢谢大家!我发布了答案和代码示例。

标签: sql sql-server ssis


【解决方案1】:

我在发布问题后找到了解决方案。希望这可以帮助其他希望在自定义组件中获取系统变量的人。下面是我用来在自定义组件中获取 UserName 系统变量的代码。

IDTSVariables100 variables = null;
this.VariableDispenser.LockForRead("System::UserName");
this.VariableDispenser.GetVariables(out variables);

String userName = variables["System::UserName"].Value.ToString();
variables.Unlock();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多