21

У меня есть сервер, способный создавать и запускать задачу импорта Excel с помощью мастера импорта. Я пытаюсь автоматизировать этот процесс, используя Visual Studio Integration Services, который я разрабатываю на этом сервере.Диспетчер подключений SSIS Excel не смог подключиться к источнику

Проблема возникает при попытке разработать пакет. Я добавил соединение excel и указал его на файл Excel на локальном диске (тот же файл, который я уже успешно импортировал с помощью мастера импорта). Когда я добавляю источник Excel в DataFlow и указываю соединение excel, когда я перехожу к имени листа Excel, я просто вижу «Нет таблиц или представлений, которые могут быть загружены» и получить следующую ошибку.

«Не удалось получить информацию таблицы для диспетчера соединений. Не удалось подключиться к источнику с помощью диспетчера соединений ...»

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

Любые идеи по отладке этой ошибки? Я понимаю, что в 64-битном режиме могут возникнуть проблемы, но применимо ли это к разработке?

Я хотел бы добавить, что это первенствует 2007 файл .XLSX и соединение устанавливается в Excel 2007.

+0

Да, это относится к разработке. Используете ли вы полный путь для файла excel? –

+1

Нет, но я обнаружил, что если я сохраню файл excel как excel 97-2003, тогда он отлично работает, поэтому я ожидаю, что я опубликую новый вопрос о том, почему это его. – PatFromCanada

+1

Я просто столкнулся с этим и сохранил файл 97-2003 для меня тоже, возможно, захочет опубликовать его в качестве решения здесь. Я застрял на этом пару часов, это на самом деле не проблема, но, по крайней мере, это позволит мне вернуться к работе. Благодаря! – DrewJordan

ответ

17

Для устранения этой проблемы, II сохранить файл первенствовать в Excel 97-2003, то он работает отлично

6

Я также столкнулся с этой проблемой сегодня, но нашел другое решение от использования Excel 97-2003. Согласно Maderia, проблема SSDT (SQL Server Data Tools) - это 32-битное приложение и может использовать только 32-битные провайдеры; но у вас, вероятно, установлен 64-битный провайдер ACE OLE DB. Вы можете поиграть с попыткой установить 32-битного провайдера, но вы не можете одновременно установить одновременно версию 64 & 32. Решение, предложенное Maderia (и я нашел для меня работающим), состояло в том, чтобы установить DelayValidation = TRUE на задачи, в которых я импортирую/экспортирую файл Excel 2007.

+0

Я попробую это, когда у меня появится шанс, звучит многообещающе. – PatFromCanada

+1

Попробуйте щелкнуть правой кнопкой мыши Имя проекта -> Свойства конфигурации -> Отладка -> Run64BitRuntime -> False – Jim

21

Кажется, что 32-разрядная версия Excel не была установлена. Помните, что SSDT представляет собой 32-битную среду IDE. Поэтому, когда данными является доступ с SSDT, используются 32-битные поставщики данных. При запуске пакета за пределами SSDT он работает в 64-битном режиме (не всегда, но в основном) и использует 64-разрядные поставщики данных.

Всегда помните, что если вы хотите запустить свой пакет в 64-битном (на который вы должны нацелиться), вам понадобятся как 32-разрядные поставщики данных (для разработки в SSDT), так и 64-разрядные поставщиков данных (для исполнения пакета в производстве).

Я загрузил 32-разрядные драйверы доступа с http://www.microsoft.com/en-za/download/details.aspx?id=13255. После установки, я мог видеть рабочие листы

Источник: https://mariussqlbi.wordpress.com/2013/09/06/extracting-data-from-excel-with-ssis/

+1

Это отлично сработало для меня, когда я не смог понизить мой файл excel из-за слишком большого количества строк (более 500 000) для Excel 97- 2003. – Hellion

+0

это сработало для меня – Yoav24

4

Простой обходной путь, чтобы открыть файл и просто нажать кнопку в Excel (нет необходимости изменить формат) сохранить. после сохранения в excel он начнет работать, и вы сможете увидеть его листы в DFT.

3

Рекомендации этой статьи «Извлечение данных из Excel с помощью SSIS» https://mariussqlbi.wordpress.com/2013/09/06/extracting-data-from-excel-with-ssis/ также разрешил проблему.

Я загрузил MS Access Database Engine 2010 32-разрядный драйвер
из ссылки в этой статье.

Также установите настройки Свойство проекта для отладки Run64BitRuntime = False

В SQL Server 2014 SSMS (Integration Service Catalog -> SSISDB -> Среда -.> Проекты для всех пакетов в Validate проверяемого окна "32 битого Runtime"

Мои пакеты SSIS теперь работают как в VS 2013 и SQL Server 2014 среда.

1

Вы должны использовать более старую версию драйвера подключения данных (https://www.microsoft.com/en-in/download/confirmation.aspx?id=23734) и выберите Excel версии 2007-2010 годов в конфигурации диспетчера подключений окно. Я предполагаю, что самый новый драйвер для подключения данных для Office 2016 поврежден

0

Мой ответ очень похож на тот, что у @biscoop, но я собираюсь немного разобраться, как может быть применимо к вопросу или другим людям.

У меня был .xls, который был извлечением из одного из наших webapps. Соединение Excel не будет работать (сообщение об ошибке: «никакие таблицы или представления не могут быть загружены»). В качестве побочного примечания при открытии файла должно появиться предупреждение о том, что файл был из онлайн-источника и что для этого требуется активация.

Я попытался сохранить тот же файл, что и .xlsx, и он сработал. Я попытался сохранить тот же файл с другим именем как .xls, и он тоже работал. Итак, в качестве последнего теста я только открыл исходный файл .xls, нажав save и работая с ним.

Короткий ответ: попробуйте и посмотрите, открывается ли файл и сохраняет ли трюк.

Смежные вопросы