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


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

Переменные хранят значения, которые пакет и его контейнеры, задачи и обработчики событий могут использовать во время выполнения. Дополнительные сведения см. в статье Переменные в службах 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 (небольшой) Оставайтесь в курсе в службах Integration Services
Последние загрузки, статьи, примеры и видео из Корпорации Майкрософт, а также выбранные решения из сообщества, посетите страницу служб Integration Services на сайте MSDN:

Посетить страницу «Службы Integration Services» на сайте MSDN

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

См. также

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