|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.7 ActiveX Script TaskActiveX Script Task в Data Transformation Services (DTS) в SQL Server 2000, выполнение скриптов в ходе работы пакета, циклы в пакете DTS ActiveX Script Task - одна из самых мощных возможностей DTS. При помощи этого задания вам доступно все, что вы можете сделать в операционной системе при помощи скриптов. Несколько примеров того, что обычно реализуется при помощи скриптов ActiveX в пакетах DTS: 1) проведение пользовательского резервного копирования (например, после загрузки данных перенести файлы источника в архив) 2) настройка рабочей среды - сетевых дисков, принтеров, переменных окружения и т.п. 3) выполнение различных операций в файловой системе - создание/удаление/копирование/перемещение файлов и каталогов, проверка их существования, проверка готовности дисков 4) запуск внешних приложений (в том числе на удаленном компьютере) 5) проверка различных условий - работает ли то или иное приложение, служба и т.п. 6) изменение контекста выполнения пакета (т.е. учетной записи, от имени которой должно быть выполнено то или иное действие) 7) создание (при помощи ADO) временных таблиц - recordset'ов в оперативной памяти во время работы пакета для быстрого выполнения с ними различных операций 8) отправка электронной почты по не MAPI-совместимому почтовому серверу (например, по SMTP) 9) выполнение различных операций со службой каталога Windows и NetWare (через ADSI). Все эти возможности реализуются при помощи объектных моделей WSH, ADSI, CDO, WMI, ADO и рассматриваются в специальном курсе по скриптингу. Некоторые возможности использования специализированной объектной модели SQL-DMO рассматриваются в соответствующем модуле этого курса. Две возможности ActiveX Script, специфичные для DTS: 1) в пакетах DTS мало возможностей отладки. Есть возможность в свойствах контейнера Data Transformation Properties включить just-in-time debugging, но это помогает только отлаживать сами ActiveX Script Task или преобразования ActiveX в Transform Data Task. Если же нужно просмотреть значение какой-либо переменной в ходе выполнения, просмотреть, по какой ветви пошло выполнение сложного скрипта, то в нашем распоряжении два варианта: - сохранить пакет в коде Visual Basic и использовать средства отладки Visual Studio - использовать в качестве вспомогательного средства функцию MsgBox в ActiveX Script Task, добавляя их в пакеты в отладочных целях. 2) важнейшая возможность ActiveX Script Task - организация циклов в пакете DTS. Другими средствами - практически невозможно. Используются константы времени выполнения:
Чтобы реализовать цикл, нужно использовать ActiveX Script Task и присвоить элементу пакета статус DTSStepExecStat_Waiting, например:
Конечно, желательно не забыть про выход из цикла, иначе пакет придется снимать через TaskManager. Некоторые дополнительные моменты, связанные с ActiveX Script: 1) документация по скриптам - www.microsoft.com/scripting, в MSDN и SQL Server Books Online ее практически нет; 2) в окне свойств ActiveX Script Task есть возможность перейти на вкладку Browser, а через нее вставить в скрипт правильные ссылки на все компоненты пакета 3) если вы создали в ActiveX Script Task какой-либо объект, не забудьте его удалить:
При запуске скрипта в операционной системе объекты из памяти можно явно не удалять, в DTS делать это обязательно - иначе ActiveX Script Task вообще не запустится; 4) по умолчанию в ActiveX Script можно использовать VBScript и JScript. С точки зрения функциональности различий нет, но если нет опыта работы с JScript, рекомендуется ориентироваться на VBScript - именно на нем большинство примеров. 5) скрипты интерпретируются и компилируются в момент выполнения, поэтому работают относительно медленно. Если нужна максимальная производительность, то лучше использовать Custom Task на C++ (инструкция по созданию - в SDK, регистрация - через меню Task).
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||