Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#180<< #181 |
СОДЕРЖАНИЕ
SQL Server 2000 DTS. Часть 6. Задачи DTS Designer и Package Workflow По материалам статьи Marcin Policht: SQL Server 2000 DTS Part 6 - DTS Designer Tasks and Package Workflow
Как было обещано в предыдущей статье, мы продолжаем обсуждение разных способов использования глобальных переменных в задачах
DTS Designer. В частности, мы изучим их роль в обмене данными между пакетами и особенности использования Execute Package task.
Заодно мы узнаем, для чего можно использовать DTS Package Workflow. Description: Delete DTS Log Win32 process: %ComSpec% Parameters: /C del C:\Logs\dts.log Return code: 0 Timeout: 2 Нотация %ComSpec% определяет переменную среды, указывающую на местоположение CMD.EXE. Мы будем использовать одну из внутренних команд операционной системы - DEL, вызываемую как один из параметров процесса Win32. В нашем случае, местом расположения файла регистрации будет: C:\Logs\dts.log, но, вы может изменить это место по своему усмотрению. Код возврата = 0 будет указывать на успешное завершение. Время ожидания (Timeout) = 2 определяет время, по истечении которого процесс будет принудительно завершён. Чтобы проверить работу этого пакета, сохраните его под именем "Delete DTS Log" и создайте текстовый файл C:\Logs\dts.log (его содержание является несущественным). Теперь нужно выполнить пакет (нажав зеленый треугольник в инструментальной панели или выбрав опцию Execute в меню Package) или выполнить задачу (щёлкнув правой кнопкой мыши на ней и выбрав в раскрывшемся контекстном меню Execute). Вы увидите промелькнувшее окно Command Prompt и подтверждение, что пакет или шаг (в зависимости от того, как Вы его запускали) был успешно выполнен. Если Вы проверите содержание папки C:\Logs, то увидите, что файла dts.log там больше нет. Поскольку мы хотим продемонстрировать использование для связи между пакетами глобальных переменных, мы должны устранить жесткую зависимость от имени процесса Win32 и значений его параметров. Достигается это за счёт использования задачу Dynamic Properties Task, которую мы рассматривали в предыдущей статье. В меню Task добавьте задачу Dynamic Properties Task. В её окне Package Properties, щёлкните по кнопке Add, после чего разверните на левой панели открывшегося окна узел Tasks, и выберете запись DTSTask_DTSCreateProcessTask_1. Для этой записи выберете элемент ProcessCommandLine, так что бы он стал подсвеченным. После этого нажмите на кнопке Set, и Вы увидите диалоговое окно Add/Edit Assignment. В списке Source, установите указатель вниз на элемент Global Variable и нажмите кнопку Create Global Variables. Добавьте следующую глобальную переменную: Name: gVarCmdLine Type: String Value: %comspec% /C del C:\Logs\dts.log
Нажмите OK, и Вы вернетесь в диалоговое окно Add/Edit Assignment. В нём, в списке Variable раздела Source, выберите недавно
созданную переменную gVarCmdLine. И на последок, в описании задачи замените название "Dynamic Properties Task:undefined" на
более понятное: "Set Command Line". После того, как Вы закроете диалоговое окно, Вы должны увидеть в окне DTS Package две задачи:
"Delete DTS Log" и "Set Command Line". Также, мы должны гарантировать, что задача Dynamic Properties Task будет выполнятся первой,
так как наша новая глобальная переменная должна быть установлена до выполнения процесса Win32. Это можно сделать путём установки
порядка исполнения задач, в определении логики пакета - DTS Package Workflow.
В окне DTS Package порядок исполнения задаётся указанием мышью первого, а затем второго по порядку исполнения задания и затем
нужно выбрать соответствующий тип порядка в Workflow. В нашем случае, сначала выделите значок Set Command Line, затем Delete
DTS Log и выберите значок On Success в меню Workflow. Опять создайте фиктивный журнал (C:\Logs\dts.log) и, как только Вы сохраните
и выполните пакет, Вы должны увидеть тот же результат, как и в предыдущей проверке исполнения пакета (dts.log будет удалён). Description: Execute Package Example Location: SQL Server Package name: Delete DTS Log
Указываемый в этом окне режим и параметры аутентификации будут зависеть от настройки вашего SQL Server. Имя пакета (и версия)
может быть введено вручную (не рекомендуется) или выбрано от списка существующих пакетов, если щёлкнуть по кнопке - (...). Если
на SQL сервере пакет "Delete DTS Log" один - единственный (и есть он только одной версии), его имя появится в текстовом поле
имени пакета. Иначе, Вам нужно будет выбрать его вместе с версией (обозначенной датой и временем создания). Как правило, достаточно
выбрать имя пакета (вместо указателей на версии с временными метками), и это будет указывать на то, что всегда должна
использоваться последняя версия пакета. В первом случае, у Вас будет использоваться ссылка на GUID пакета, а во втором на GUID
версии (они обе отображаются на закладке General диалогового окна Properties пакета). Использование GUID версии означает, что
Вы должны будете каждый раз корректировать опцию "Package NAME", чтобы указать ссылку на последнюю версию, если Вы вносите
изменения в пакет (предполагается, что Вы хотите всё время иметь наиболее современную версию). Если Вы хотите удалить ссылку
на GUID версии или целого пакета (чтобы избежать проблемы в случае, если дочерний пакет будет заменён другим с таким же именем),
Вы можете удалить PackageID с помощью Disconnected Edit (доступный в меню Package окна DTS Package). Открыв окно Edit All
Package Properties, Вы можете просмотреть свойства Execute Package Task и удалить значение соответствующего PackageID. Статьи на русском языке
Принципы проектирования XML-схем: нужны ли производные сложные типы Новые и обновлённые технические статьи Microsoft
BUG:
The Distribution Agent or the Merge Agent does not succeed when you replicate
stored procedures or views in SQL Server 2000
Writing Cached High Performance Database Applications Самые популярные темы недели
Tool Вы знаете что твориться на ваших 10-30+ серверах ?
Чем архивировать большие файлы Рассылка: Вопросы и ответы по Microsoft SQL Server
Автор рассылки: Сергей Кошкин
Выпуск No. 27 от 2004-01-30
|
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||