如何在脚本任务中使用包变量?

发布于 2024-11-14 15:39:08 字数 201 浏览 1 评论 0原文

目前,我在 SSIS 包的脚本任务中硬编码了一个文件路径值。

我有一个字符串变量 sPath。我应该如何在脚本任务中使用这个变量 sPath?

string strPath = "C:\\File.xls";
if( File.Exists(strPath))
{
    File.Delete(strPath);
}

Currently, I have a file path value hard coded inside the Script task of an SSIS package.

I have a string variable sPath. How should I use this variable sPath inside Script Task?

string strPath = "C:\\File.xls";
if( File.Exists(strPath))
{
    File.Delete(strPath);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝眸 2024-11-21 15:39:08

这是在脚本任务中使用变量的一种可能方法。假设您在包上声明了一个名为 FilePath 的变量,如屏幕截图 #1 所示,那么您可以使用以下代码在 Script Task 中使用该变量。这是使用该变量的可能方法之一。这里变量仅用于使用 LockForRead 方法读取值。如果使用 LockForWrite 方法声明变量,您还可以向变量写入值。

顺便说一句,Scrip Task 代码中描述的功能也可以使用 SSIS Control Flow 任务列表中提供的 File System Task 来执行。

希望有帮助。

在脚本任务中使用包变量

C#代码只能在SSIS 2008及更高版本中使用。

public void Main()
{
    Variables varCollection = null;
    string FilePath = string.Empty;

    Dts.VariableDispenser.LockForRead("User::FilePath");
    Dts.VariableDispenser.GetVariables(ref varCollection);

    FilePath = varCollection["User::FilePath"].Value.ToString();

    if (File.Exists(FilePath))
    {
        File.Delete(FilePath);
    }

    varCollection.Unlock();

    Dts.TaskResult = (int)ScriptResults.Success;
}

屏幕截图#1:

1

Here is one possible way of using variables inside Script Task. Assuming that you have a variable named FilePath declared on your package as shown in screenshot #1 then you can use the following code to use the variable inside the Script Task. this is one of the possible ways to use the variable. Here the variable is used only to read the value using the method LockForRead. You can also write values to the variable if the variable is declared with LockForWrite method.

By the way, the functionality described in the Scrip Task code can also be carried out using the File System Task available in SSIS Control Flow task list.

Hope that helps.

Using package variables inside Script Task:

C# code that can be used only in SSIS 2008 and above.
.

public void Main()
{
    Variables varCollection = null;
    string FilePath = string.Empty;

    Dts.VariableDispenser.LockForRead("User::FilePath");
    Dts.VariableDispenser.GetVariables(ref varCollection);

    FilePath = varCollection["User::FilePath"].Value.ToString();

    if (File.Exists(FilePath))
    {
        File.Delete(FilePath);
    }

    varCollection.Unlock();

    Dts.TaskResult = (int)ScriptResults.Success;
}

Screenshot #1:

1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文