Один подход можно принять, если вы не хотите, чтобы коснуться, как данные были переданы в Foreach
компонента:
Вы можете включать в себя дополнительный компонент Execute SQL Task
внутри Foreach
контейнера, который проверяет первый, если есть данные для обработки.
Создайте переменную, в которой ваша задача SQL будет установить количество записей, например @cntProceed
Установите этот компонент для запуска перед вашей Dataflow задачи.
Измените ограничение приоритета (зеленая стрелка от задачи SQL к задаче потока данных). Установите evaluation operation
в Expression and Constraint
, Value
к Success
и Expression
к @cntProceed != 0
Что все это делает: Внутри Еогеасп компонента/контейнер, то он сначала проверить, если существует каких-либо данных для работы с. Это то, что сделает дополнительный компонент, и если есть данные для использования, он перейдет к компоненту потока данных. В противном случае, "each"
(или, вернее .., что один цикл) закончится, и Foreach
переместится к следующему.
Что вы переходите в цикл foreach и что у вас есть внутри цикла foreach? Пожалуйста, добавьте более подробную информацию к своему сообщению .. Это поможет нагрузкам. – Nonym
Я передающая и объектная переменная в цикле foreach внутри цикла foreach. У меня есть задача потока данных (источник и адрес dle db), который использует эту переменную в запросе переменная (та, которая использует foreach) работает нормально, но, например, если в запросе используется год (переменная), у которой нет данных, тогда задача завершается с ошибкой.Я хочу обрабатывать случаи, которые не возвращают данные – user1112251
FYI без данных Я имею в виду, если запрос похож на «Select * from sysobjects where =?» и нет данных за этот год. – user1112251