|
Как в DTS-пакете организовать цикл?
|
|||
---|---|---|---|
#18+
Можно ли в 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-пакет, так что не обессудьте . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2001, 19:50 |
|
Как в DTS-пакете организовать цикл?
|
|||
---|---|---|---|
#18+
Иными словами, ты зациклил 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), что заставит его (а, сл., и всю растущую из него цепочку) выполниться еще раз. Собственно, все. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2001, 01:01 |
|
|
start [/forum/topic.php?fid=46&msg=32002869&tid=1827237]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 186ms |
0 / 0 |