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


Сравнение задачи «Скрипт» и компонента скрипта

Задача «Скрипт», доступная в окне «Поток управления» конструктора служб Службы Integration Services, и компонент скрипта, доступный в окне «Поток данных», предназначены в пакете служб Службы Integration Services для разных целей. Задача представляет собой универсальное средство потока управления, а компонент служит источником, преобразованием или назначением в потоке данных. Несмотря на то что они предназначены для разных целей, между задачей «Скрипт» и компонентом скрипта имеются некоторые подобия в используемых средствах разработки кода и объектах в пакете, которые доступны разработчику с их помощью. Понимание их подобия и различия может помочь использовать задачи и компоненты более эффективно.

Подобия между задачей «Скрипт» и компонентом скрипта

Задача «Скрипт» и компонент скрипта имеют следующие общие характеристики.

Компонент

Описание

Два режима времени разработки

Разработка задачи и компонента начинается с определения свойств в редакторе с последующим переключением в среду разработки для написания кода.

Средства Microsoft Visual Studio для приложений (VSTA)

И для задачи и для компонента используется одна и та же интегрированная среда разработки средств VSTA, а поддерживающий код пишется на языке Microsoft Visual Basic либо Microsoft Visual C#.

Предварительно откомпилированные скрипты

Начиная с версии служб Службы SQL Server 2008 Integration Services (SSIS), все скрипты предварительно компилируются. В более ранних версиях предусмотрена возможность указать, должны ли скрипты быть предварительно откомпилированы.

Предварительная компиляция скрипта приводит к получению двоичного кода, который позволяет повысить быстродействие выполнения, но за счет увеличенного размера пакета.

Отладка

И в задаче и в компоненте поддерживаются точки останова и пошаговое выполнение кода во время отладки в среде разработки. Дополнительные сведения см. в разделах Написание кода и отладка задачи «Скрипт» и Кодирование и отладка компонента скрипта.

Различия между задачей «Скрипт» и компонентом скрипта

Между задачей «Скрипт» и компонентом скрипта имеются следующие различия.

Компонент

Задача «Скрипт»

Компонент скрипта

Поток управления или поток данных

Настройка задачи «Скрипт» выполняется на вкладке «Поток управления» конструктора и запускается вне потока данных пакета.

Настройка компонента скрипта выполняется на странице конструктора «Поток данных», а компонент представляет источник, преобразование или назначение в задаче потока данных.

Назначение

Задача «Скрипт» позволяет выполнять почти любую задачу общего назначения.

С помощью компонента скрипта можно указать, следует ли создать источник, преобразование или назначение.

Выполнение

Задача «Скрипт» запускает пользовательский код в определенной точке рабочего процесса пакета. Если задача не помещена в контейнер цикла или обработчик события, она выполняется только один раз.

Компонент скрипта также выполняется однократно, но, как правило, он выполняет свою главную процедуру обработки по одному разу для каждой строки данных в потоке данных.

Редактор

Окно Редактор задачи «Скрипт» содержит три страницы: Общие, Скрипт и Выражения. К разрабатываемому коду имеют непосредственное отношение только свойства ReadOnlyVariables и ReadWriteVariables, а также ScriptLanguage.

Окно Редактор преобразования «Скрипт» может содержать до четырех страниц: Входные столбцы, Входы и выходы, Скрипт и Диспетчеры соединений. Каждая из этих страниц предназначена для настройки метаданных и свойств, определяющих, какие элементы базовых классов автоматически формируются для использования при разработке кода.

Взаимодействие с пакетом

В коде, написанном для задачи «Скрипт», для доступа к другим функциям пакета используется свойство Dts. Свойство Dts является элементом класса ScriptMain.

В коде компонента скрипта используются свойства типизированного метода доступа для получения доступа к определенным средствам пакета, таким как переменные и диспетчеры соединений.

Метод PreExecute может обращаться только к переменным, доступным только для чтения. Метод PostExecute может обращаться как к переменным, доступным только для чтения, так и к переменным, доступным для чтения и записи.

Дополнительные сведения об этих методах см. в разделе Кодирование и отладка компонента скрипта.

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

Задача «Скрипт» использует свойство Variables объекта Dts, чтобы получить доступ к переменным, доступным через свойства задачи ReadOnlyVariables и ReadWriteVariables. Например.

В компоненте скрипта используются свойства типизированного метода доступа, относящиеся к автоматически сформированному базовому классу, который создан на основе свойств компонентов ReadOnlyVariables и ReadWriteVariables. Например.

Использование соединений

Чтобы получить доступ к диспетчерам соединений, определенным в пакете, в задаче «Скрипт» используется свойство Connections объекта Dts. Например,

В компоненте скрипта используются свойства типизированного метода доступа, относящиеся к автоматически сформированному базовому классу, который создан на основе списка диспетчеров соединений, введенного пользователем на странице «Диспетчеры соединений» редактора. Например,

Инициирование событий

В задаче «Скрипт» для инициирования событий используется свойство Events объекта Dts. Например,

Компонент скрипта инициирует ошибки, предупреждения и информационные сообщения с помощью методов интерфейса IDTSComponentMetaData100, возвращаемых свойством ComponentMetaData. Например,

Ведение журнала

Для ведения журналов во включенных регистраторах в задаче «Скрипт» используется метод Log объекта Dts . Например:

В компоненте скрипта используется метод Log автоформирования базового класса для ведения журналов во включенных регистраторах. Например:

[Visual Basic]

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)

Возвращение результатов

Чтобы передать в среду выполнения извещение о результате работы, в задаче «Скрипт» используются как свойство TaskResult, так и необязательное свойство ExecutionValue объекта Dts .

Компонент скрипта выполняется в составе задачи потока данных и не сообщает о результатах ни с одним из этих свойств.

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей служб Integration Services

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


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

См. также

Справочник

Расширение пакета с помощью задачи «Скрипт»

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

Расширение потока данных с помощью компонента скрипта

Другие ресурсы

Использование веб-служб в SSIS с помощью скриптов (курируемый ответ)