Контейнер циклов SSIS Foreach OLE DB - проблема с динамическим соединением - PullRequest
2 голосов
/ 08 мая 2019

Я настраиваю новое хранилище данных (Сервер 1) и мне нужно получить данные из 3 разных баз данных на одном сервере (Сервер 2). Все работает хорошо, пока я не попытаюсь установить динамическое соединение.

Я создал FLC контейнера цикла по каждому элементу, включая 4 переменные

  • Servername
  • База данных
  • Пользователь
  • Pw

В FLC я добавил задачу потока данных DFT, а в DFT добавил источник OLE DB. enter image description here enter image description here enter image description here enter image description here

В свойствах соединения с источником OLE DB я добавил переменные 1 в качестве выражения. Непосредственно соединение переходит в автономный режим, и OLE DB Source выдает ошибку. Сообщение об ошибке:

Ошибка в задаче потока данных [Источник OLE DB 5 ]: код ошибки служб SSIS DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. Ошибка вызова метода AcquireConnection для диспетчера соединений «Тест» с кодом ошибки 0xC0014041. Там могут быть сообщения об ошибках, опубликованные ранее это с дополнительной информацией о том, почему вызов метода AcquireConnection не удалось.

Ошибка в задаче потока данных [SSIS.Pipeline]: сбой источника OLE DB проверка и возвращенный код ошибки 0xC020801C.

Ошибка в задаче потока данных [SSIS.Pipeline]: сбой одного или нескольких компонентов проверка.

Ошибка при задании потока данных: во время проверки задания возникли ошибки.

Ошибка в пакете: диспетчер соединений «Тест» не получит соединение, потому что свойство OfflineMode диспетчера соединений ПРАВДА. Когда OfflineMode имеет значение TRUE, соединения не могут быть получены.

(Microsoft.DataTransformationServices.VsIntegration)

1 Ответ

0 голосов
/ 08 мая 2019

Прежде всего, вы используете следующий провайдер, который не подходит:

Поставщик Microsoft OLE DB для драйверов ODBC

Вместо этого выберите SQL Server Native Client 11 в диспетчере соединений.

Следующим шагом является изменение задачи потока данных и свойства Delay Validation источника OLEDB на True, так как если значения переменных по умолчанию пустые, это вызовет ошибку на этапе проверки пакета (после его выполнения)

Обновление 1 - свойство ConnectionString

Вместо назначения выражений нескольким свойствам диспетчера соединений используйте выражение строки соединения:

"Data Source=" + @[User::SERVER] + ";User ID=" + @[User::USERNAME] + ";Password=" + @[User::PASSWORD] +";Initial Catalog=" + @[User::DATABASE] + ";Provider=SQLNCLI11.1;Persist Security Info=True;Auto Translate=False;" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...