powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как в DTS-пакете организовать цикл?
2 сообщений из 2, страница 1 из 1
Как в DTS-пакете организовать цикл?
    #32002869
BAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли в DTS-пакете организовать циклическое выполнение последовательности операций: что-то похожее на
For Counter = Index1 To Index2
[Последовательность_операций]
Next Counter.
или
Do While [условие]
[Последовательность_операций]
Loop

Я пробовал такой вариант. Есть последовательность шагов
Step1(ActiveX)->On Success->Step2(ActiveX)-[Последовательность_операций_разного_типа]->Step_n

Если структура линейная, то все работает нормально: один проход по всей цепочке удается. Но мне нужно организовать цикл, для чего я сделал связь: Step_n->On Success->Step2. В Step1 задается начальное значение для счетчика Counter – это глобальная переменная. Тогда при запуске пакета выполняется только Step1 и все. Остальные шаги даже _не_пытаются_ выполняться.

P.S. Это первая моя попытка создать DTS-пакет, так что не обессудьте
.
...
Рейтинг: 0 / 0
Как в DTS-пакете организовать цикл?
    #32002878
Фотография Дед Маздай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иными словами, ты зациклил Step_n на Step_2 и удивляешься, что кроме Step_1 ничего не работает. Удивляться нечему, п.ч. тем самым ты для Step_2 обозначил два precedence constraints: Step_1 и Step_n. Последний не отрабатывает, т.к. до него управление еще не дошло, поэт. начало цикла тоже не отрабатывает. Т.е. ты зациклил не выполнение, а невыполнение цикла. На с.д. оставь всю цепочку линейной и однонаправленной, как вначале. Step_n должен выглядеть так:
DTSGlobalVariables("Counter").Value = DTSGlobalVariables("Counter").Value - 1
msgbox DTSGlobalVariables("Counter").value
if DTSGlobalVariables("Counter").Value > 0 then
Main = DTSTaskExecResult_Success
else
Main = DTSTaskExecResult_Failure
end if
Из Step_n протяни стрелочку "в случае успеха" на задачу типа Dynamic Properties, в к-й поменяй св-во ExecutionStatus шага Step_2 c 4 (DTSStepExecStat_Completed) на 1 (DTSStepExecStat_Waiting), что заставит его (а, сл., и всю растущую из него цепочку) выполниться еще раз. Собственно, все. Удачи.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как в DTS-пакете организовать цикл?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]