Подтвердить что ты не робот

Диспетчер подключений SSIS Excel не удалось подключиться к источнику

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

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

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

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

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

Я должен добавить, что это файл Excel Excel.XLSX, а соединение установлено в Excel 2007.

4b9b3361

Ответ 1

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

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

Я загрузил 32-разрядные драйверы доступа из:

После установки я мог видеть рабочие листы


Источник:

Ответ 2

Обходной путь: я сохраняю файл excel как excel 97-2003, тогда он отлично работает

Ответ 3

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

Ответ 4

Рекомендации из этой статьи Извлечение данных из Excel с помощью SSIS решило проблему для меня.

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

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

В SQL Server 2014 SSMS (Каталог служб интеграции → SSISDB → Среды → Проекты для всех пакетов в проверке установлен флажок 32 bit Runtime.

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

Ответ 5

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

Ответ 6

Необходимо использовать более старую версию драйвера подключения к данным (Драйвер системы Office 2007: Компоненты подключения к данным) и выбрать версию Excel 2007-2010 в окне конфигурации диспетчера подключений. Я предполагаю, что новейший драйвер подключения к данным для Office 2016 поврежден

Ответ 7

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

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

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

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

Ответ 8

Я обнаружил, что мой файл Excel, созданный в Excel 365, был несовместим с любой из доступных версий. Я повторно сохранил файл Excel в версии 97-2003 и, конечно же, выбрал эту версию в раскрывающемся списке, и он прочитал файл ОК.

Ответ 9

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

Для источника Excel, Перед этим шагом вам нужно изменить настройку

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

  1. Перетащите источник Excel
  2. Дважды щелкните источник Excel и подключитесь к Excel. В любом случае вы получите ту же ошибку, которую не может загрузить таблица или представление....
  3. Нажмите ОК
  4. Щелкните правой кнопкой мыши на источнике Excel, нажмите Показать расширенное редактирование.
  5. В этом нажмите на свойства компонента.
  6. Вы можете увидеть openrowset. В этой правой части вам нужно ввести свой пример имени листа Excel: если в Excel лист1, то вам нужно ввести лист1 $. Конец символом доллара. И нажмите ОК.
  7. Теперь вы можете выполнять другие работы, подключаясь к месту назначения.

Я использую Visual Studio 2017, SQL Server 2017, Office 2016 и Microsoft Access базы данных 2010 двигатель 32bit. ОС Windows 10 64 бит.

Это временное решение. Потому что многие люди ищут этот тип вопроса. Наконец-то я разобрался и этого решения нет ни на одном сайте.