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


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

Переменные хранят значения, которые пакет и его контейнеры, задачи и обработчики событий могут использовать во время выполнения. Дополнительные сведения см. в разделе Переменные в службах 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 (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы получить новейшую документацию, статьи, образцы и видеоматериалы корпорации Майкрософт, а также лучшие решения участников сообщества, посетите страницу служб Службы Integration Services на сайте MSDN:


Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.

См. также

Задания

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

Основные понятия

Переменные в службах Integration Services (SSIS)