Как использовать переменную пакета внутри задачи «Сценарий»? - PullRequest
2 голосов
/ 06 июня 2011

В настоящее время у меня есть значение пути к файлу, жестко запрограммированное в задаче «Сценарий» пакета служб SSIS.

У меня есть строковая переменная sPath. Как мне использовать эту переменную sPath внутри Script Task?

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

1 Ответ

7 голосов
/ 06 июня 2011

Вот один из возможных способов использования переменных внутри Script Task. Предполагая, что у вас есть переменная с именем FilePath , объявленная в вашем пакете, как показано на скриншоте # 1 , вы можете использовать следующий код для использования переменной внутри Script Task. это один из возможных способов использования переменной. Здесь переменная используется только для чтения значения с использованием метода LockForRead. Вы также можете записать значения в переменную, если переменная объявлена ​​методом LockForWrite.

Кстати, функциональность, описанную в коде Scrip Task, также может быть реализована с использованием File System Task, доступного в списке задач SSIS Control Flow.

Надеюсь, это поможет.

Использование переменных пакета внутри задачи скрипта:

C # код, который можно использовать только в 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;
}

Скриншот №1:

1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...