Использование переменных в компоненте скрипта
Переменные хранят значения, которые пакет и его контейнеры, задачи и обработчики событий могут использовать во время выполнения. Дополнительные сведения см. в разделе Переменные в службах 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 вместо типизированных и именованных свойств метода доступа, если требуется работать с переменной, недоступной во время разработки, но создающейся программным способом во время выполнения.
|
См. также
Задания
Использование переменных в пакетах