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

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

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

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