Поделиться через


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

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

Переменные хранят значения, которые пакет и его контейнеры, задачи и обработчики событий могут использовать во время выполнения. Дополнительные сведения см. в статье Переменные в службах Integration Services (SSIS).

Существующие переменные можно сделать доступными только для чтения или чтения и записи с помощью пользовательского скрипта, введя список значений, разделенных запятыми, в поля ReadOnlyVariables и ReadWriteVariables на странице Скрипт в окне Редактор преобразования "Скрипт". Помните, что в именах переменных учитывается регистр. Используйте свойство Value, чтобы считывать значения отдельных переменных и записывать значения в них. Компонент скрипта обрабатывает любые необходимые блокировки в фоновом режиме, пока скрипт во время выполнения обрабатывает переменные.

Внимание

Коллекция ReadWriteVariables доступна только в методе PostExecute для повышения производительности и снижения риска конфликта блокировок. Поэтому нельзя непосредственно увеличивать значение переменной пакета после обработки каждой строки данных. Вместо этого увеличьте значение локальной переменной и присвойте значение переменной пакета локальной переменной в методе PostExecute после того, как все данные обработаны. Чтобы обойти это ограничение можно также использовать свойство VariableDispenser, как описано ниже в этом разделе. Однако запись напрямую в переменную пакета по мере обработки каждой строки отрицательно скажется на производительности и увеличит риск конфликта блокировок.

Дополнительные сведения о странице Скрипт редактора преобразования "Скрипт" см. в разделах Настройка компонента "Скрипт" в редакторе компонента "Скрипт" и Редактор преобразования "Скрипт" (страница "Скрипт").

Компонент скрипта создает класс коллекции Variables в элементе проекта ComponentWrapper со строго типизированным свойством метода доступа для значения каждой предварительно настроенной переменной, в которой свойство имеет то же самое имя, что и сама переменная. Эта коллекция доступна с помощью свойства Variables класса ScriptMain. Свойство метода доступа предоставляет разрешения только для чтения или для чтения и записи значения этой переменной, в зависимости от ситуации. Например, если к списку ReadOnlyVariables добавлена целочисленная переменная с именем MyIntegerVariable, ее значение можно получить в скрипте с помощью следующего кода:

Dim myIntegerVariableValue As Integer = Me.Variables.MyIntegerVariable

Для работы с переменными в компоненте скрипта можно также использовать свойство VariableDispenser, вызвав метод Me.VariableDispenser. В этом случае доступ к переменным осуществляется напрямую, без использования типизированных и именованных свойств метода доступа к переменным. При использовании свойства VariableDispenser необходимо обрабатывать в коде и семантику блокирования, и приведение типов данных для значений переменных. Необходимо использовать свойство VariableDispenser вместо типизированных и именованных свойств метода доступа, если требуется работать с переменной, недоступной во время разработки, но создающейся программным способом во время выполнения.

См. также

Переменные в службах Integration Services (SSIS)
Использование переменных в пакетах