Не удается поместить задачу SQL в цикл по каждому элементу - PullRequest
1 голос
/ 19 января 2010

Я новичок в SSIS и полагаюсь на книгу, поэтому на этот вопрос должно быть легко ответить.

Я хочу импортировать данные из всех текстовых файлов в каталоге.Поэтому я создаю контейнер Foreach.

Первое, что я хочу сделать в цикле, - выполнить задачу SQL для удаления и создания целевой таблицы.

Затем я хочу загрузить данные вцелевую таблицу из выбранного текстового файла с помощью задачи «Поток данных».

Затем я хочу выполнить задачу SQL, чтобы загрузить таблицы SQL из таблицы Landing и выполнить некоторые вычисления.

Проблемав том, что в цикле Foreach я не могу подключить задачу SQL к задаче потока данных.Я получаю сообщение

Невозможно создать соединитель.Не удается подключить исполняемые файлы из разных контейнеров.

Так как мне это сделать?

Ответы [ 6 ]

2 голосов
/ 20 января 2015

Я знаю, что это старая тема. Я хотел добавить к этому, хотя в случае, если это кому-нибудь полезно.

В моем случае у меня был контейнер цикла foreach с некоторыми задачами FTP и задачами сценариев, и мне все еще нужно добавить больше в этот цикл foreach. Я переименовал цикл foreach, а затем добавил новую задачу сценария в нижней части потока контейнера цикла foreach. Когда я попытался подключить текущую задачу FTP в конце потока контейнера цикла foreach к новой задаче сценария, которую я добавил внизу, я получил сообщение об ошибке «Невозможно создать соединитель. Невозможно подключить исполняемые файлы из разных контейнеры «.

Поэтому я перетащил текущие задачи FTP и задачи сценариев за пределы недавно переименованного контейнера цикла foreach (или я подозреваю, что мог бы вырезать их и вставить их вне контейнера цикла foreach). Затем я перетащил их обратно во вновь переименованный контейнер цикла foreach. Затем я снова успешно соединил их все без этой ошибки.

Таким образом, кажется, что после переименования контейнера цикла foreach БЕЗ полного завершения, когда вы добавляете новую иконку Задачи в конец потока недавно переименованного контейнера цикла foreach, вы можете или получите ошибку о невозможности для подключения из разных контейнеров (поскольку я полагаю, что недавно переименованный контейнер цикла foreach считается «отличным» от старого имени того же самого контейнера цикла foreach.

2 голосов
/ 20 января 2010

Как насчет снимка экрана?Я уже использовал эти 2 компонента в контейнере цикла без проблем, я думаю, что графический интерфейс немного обманчив.

1 голос
/ 12 ноября 2012

У меня была похожая проблема, когда все компоненты были в цикле for. Принимая во внимание, что (аналогично комментарию rageit) один из подкомпонентов был фактически сверху, а не внутри цикла foreach.

Быстрое решение состояло в том, чтобы вырезать компонент, выбрать цикл foreach и вставить его.

0 голосов
/ 19 февраля 2015

Решение, которое решило мою проблему - вырезать компонент и вставить его обратно. Если существует иерархия задач, отрежьте все задачи одну за другой, чтобы удалить их соединения и вставить их обратно, а затем соединиться сверху.

0 голосов
/ 17 сентября 2013

Ни один не был моим случаем.Я просто переместил его из другого контейнера в новый контейнер.Я должен был воссоздать задачу.Там нет свойства, чтобы показать вам, какой контейнер содержит задачу.Определенно ошибка GUI.Я пользуюсь BI 2008

0 голосов
/ 19 января 2010

Похоже, вы пытаетесь подключить задачу Sql в цикле foreach к задаче DataFlow, которая не находится в цикле. Если это то, что вы намереваетесь, вам нужно взять соединение из цикла ForEach и подключить его к DataFlow. Однако если вы хотите, чтобы и SQLTask, и Dataflow работали внутри ForEachLoop, вам нужно поместить DataFlow в цикл ForEach, а затем вы сможете подключить SQLTask к DataFlow.

...