SSIS: выполнение пакета в 32-битном режиме и копирование из одного источника в другой - PullRequest
0 голосов
/ 27 января 2012

Мне нужно (регулярно) перемещать данные, хранящиеся в базе данных FoxPro, в SQL. Я пытался заставить этот работать безрезультатно.

В итоге я нашел эту ссылку , которая, кажется, дает лучшие результаты ...

Кроме того, я полный SSIS n00b, сегодня я буквально только запустил IDE.

Пока что я сделал следующее ... (извините за использование изображений, если в этом нет необходимости)

(я также установил для Run64BitRuntime значение false, я где-то читал, что драйверы FoxPro ODBC 32-разрядные, поэтому не знаю, помогает ли это или нет /, поскольку я получаю ту же ошибку при включенной или выключенной настройке)

1.) Создал поток управления и добавил в него задачу потока данных. Control Flow

2.) Создал соединение с SQL Destination и моим источником FoxPro и связал их

Dataflow

3.) При выполнении я получаю сообщение об ошибке enter image description here

Я также видел это на странице результатов выполнения (не подумал, что когда он будет прикреплен, это будет крошечным ...) Но это в основном

[Источник OLE DB 1 ] Ошибка: код ошибки служб SSIS DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.
Ошибка вызова метода AcquireConnection для диспетчера соединений "\ foo \ c $ \ bar" с кодом ошибки 0xC0209303.
До этого могут быть сообщения об ошибках с дополнительной информацией о том, почему произошел сбой вызова метода AcquireConnection.

enter image description here

4.) Затем я посмотрел на свое соединение с FoxPro, и, насколько я знаю, оно выглядит нормально. (Точно так же, как к сведению. Я не уверен, как работает база данных FoxPro, (я также совершенно новичок в этом), но это похоже на кучу свободных файлов, например, 1 файл на таблицу в базе данных, поэтому я я не уверен, могу ли я подключиться к одному файлу / это должен быть каталог или что) Connection

Любые идеи ...: \

UPDATE: В шаге 3 есть больше, чем я заметил.

[Диспетчер соединений "\ foo \ c $ \ bar"] Ошибка: код ошибки служб SSIS DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR. Запрашиваемый поставщик OLE DB VFPOLEDB.1 не зарегистрирован - возможно, нет 64-битного провайдера. Код ошибки: 0x00000000. Доступна запись OLE DB. Источник: «Microsoft OLE DB Service Components» Hresult: 0x80040154 Описание: «Класс не зарегистрирован».

как мне заставить пакет работать в 32-битном режиме?

Ответы [ 3 ]

3 голосов
/ 17 октября 2013

УСТАНОВИТЬ RUN 64 на False из свойств проекта.

2 голосов
/ 01 февраля 2012

Я повторил свои точные шаги, как в моем вопросе.После просмотра моего исходного поста (точнее № 3) вы увидите раздел:

не имеет значения для свойства ID

Из рисунка ниже:

does not have a value for the ID property

Это была небольшая ошибка в обучении чтению.Я никогда не сопоставлял два источника / таблицы (вызванные моей неопытностью служб SSIS).

Что касается копирования данных:

Для всех, кто сталкивается с этим сообщением, ЭТО - это точный маршрут, который я выбрал для копирования моих данныхв мою базу данных SQL (решение 1)

  • Создайте новый пакет служб интеграции с SQL Server (SSIS).
  • Добавьте Data> Flow Task (DFT) в пакет.
  • Выберите DFT и перейдите на страницу конструктора потока данных.
  • Добавить источник OLE DB в пакет.
  • Дважды щелкните Источник OLE DB, нажмите «Создать»> «Создать», чтобы создать соединение с Visual FoxPro.
  • В диспетчере соединений выберите «Поставщик Microsoft OLE DB для Visual FoxPro» и введите путь к файлу базы данных Visual FoxPro (например, C: \ Address.dbc).
  • Проверьте соединение, нажав кнопку «Проверить соединение». Нажмите «ОК»> «ОК» для подтверждения.
  • Теперь мы можем выбрать таблицу из базы данных Visual FoxPro в редакторе исходного кода OLE DB.
1 голос
/ 03 октября 2012

Мне стыдно сказать вам, что я потратил около 40 разочаровывающих часов, чтобы решить эту проблему. Но не смог. Однако я нашел обходной путь для этого.

Эта проблема возникает при включении конфигурации пакетов. В этом случае вам нужно вручную изменить строку подключения и добавить пароль = myPassword; к нему, а затем выполнить пакеты. ЭТО РАБОТАЕТ ..

...