Сбой подключения к драйверу odbc excel
С момента обновления Windows от 10 октября перестали работать драйверы ODBC Excel. Мы получаем следующую ошибку при попытке прочитать файл:
"Unexpected error from external database driver (1)"
Мы открываем файлы Excel в Delphi, используя соединение ADO со следующей строкой соединения:
Я могу заставить его работать, переключившись на Microsoft.ACE.OLEDB.12.0, но для этого всем нашим клиентам нужно будет установить распространяемый компонент Microsoft Access Database Engine на все компьютеры, на которых они используют наше программное обеспечение.
У кого-нибудь есть другое решение или обходной путь? Заранее спасибо.
Подождите или попросите Microsoft (это новая проблема). Это не имеет ничего общего с Delphi. Я думаю, это вы писали в эту ветку , не так ли?
Да, это был я. Я подумал, что это не имеет ничего общего с Delphi, но, возможно, у кого-то есть решение для Delphi (например, альтернативные компоненты или FireDAC).
Ну, максимум альтернативный драйвер ODBC. И пока не ясно, в драйвере ли проблема или в приложении Access. Только Microsoft знает наверняка.
На машине клиента я деинсталлировал KB4041681 (Windows 7), который поставлялся с последним патчем Microsoft. На моем компьютере я деинсталлировал KB4041676 (Windows 10). После этого Microsoft.Jet.OLEDB.4.0 теперь работает.
Я надеюсь, что Microsoft скоро исправит эту ошибку.
@donhauro У меня деинсталлирован KB4041681 (Windows 7), но я все еще сталкиваюсь с «Неожиданной ошибкой из драйвера внешней базы данных» . Вы можете предложить мне другой вариант?
Есть одно решение. Заменить "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1" на Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls; Extended Properties=\"Excel 12.0;HDR = YES; После этого изменения вам нужно будет установить Драйвер системы 2007 Office: Компоненты подключения к данным по ссылке на компьютере клиента.
В ArcGIS Desktop 10.5.1 от ESRI (самая популярная программа для обработки географических данных) Не удалось открыть файлы Excel 2003 и .mdb.
Временное решение: удалить KB4041693, KB4041687 в Windows 8.1 (возможно, для w10).
В журнале изменений Microsoft обоих путей говорится что-то об «обновлениях [. ] и обновлениях безопасности для Microsoft Jet». После удаления и перезапуска все программное обеспечение снова становится нормальным.
ODBC весьма полезен для процедур доступа к приложениям, особенно для профессиональных пользователей. И, похоже, существует множество проблем для пользователей Windows 10, которые либо перешли с Windows 7, либо обновили свою версию Windows 10 до последней версии.
Если вы один из них и у вас есть определенные проблемы с ODBC в Windows 10, проверьте решения ниже.
- Удалить SMBv1 и включить SMBv2/SMBv3)
- Проверьте брандмауэр Windows и Защитник Windows
- Обновление драйверов
- Откат к предыдущей версии Windows
Решение 1. Удалите SMBv1 и включите SMBv2/SMBv3)
Некоторые пользователи решили проблему, отключив SMBv1 и включив SMBv2 или SMBv3. Это можно сделать различными способами, начиная с PowerShell или редактора реестра. Последний способ быстрее и проще, но может негативно повлиять на ваш компьютер при неправильном использовании. Поэтому, прежде чем выполнять следующие шаги, обязательно сделайте резервную копию вашего реестра.
Вот как отключить SMBv1 и включить SMBv2/SMBv3:
- В строке поиска Windows введите regedit и откройте редактор реестра.
- Перейдите в ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters .
- Щелкните правой кнопкой мыши пустое пространство и создайте новый Dword, назовите его SMB1 и установите его значение равным 0.
- Щелкните правой кнопкой мыши на пустом месте и создайте новый Dword, назовите его SMB2 и установите его значение равным 1.
- Закройте редактор реестра и перезагрузите компьютер.
Сделайте это на каждой уязвимой машине и не забудьте перезагрузить ее, чтобы изменения вступили в силу.
- ЧИТАЙТЕ ТАКЖЕ: отключите SMBv1 в Windows с помощью этих быстрых методов
Решение 2. Проверьте брандмауэр Windows и Защитник Windows
Некоторым пользователям удалось решить проблему, просто добавив белый список или временно отключив брандмауэр Windows и включив Защитник Windows. Это долгосрочное решение, но оно того стоит. Если у вас уже есть сторонний антивирус, попробуйте объединить его с нативным антивирусом.
После этого перезагрузите компьютер и попробуйте снова получить доступ к приложению ODBC.
Решение 3 – Обновление драйверов
В случае, если вы используете 32-битный Office на 64-битной машине через ODBC, вам потребуется некоторая перенастройка, чтобы избежать ошибок драйвера. Или, скорее, доступ к версии ODBC32 вместо стандартной 64-битной версии, представленной в архитектуре x64.
Вот где его найти и как его запустить:
- Перейдите к C: WindowssysWOW64odbcad32.exe и запустите его. Это 32-битный администратор источника данных ODBC.
- Попробуйте применить драйверы снова.
- После того, как вы применили драйверы, перезагрузите компьютер.
Решение 4 – Откат к предыдущей версии Windows
Как говорили многие из затронутых пользователей, проблема возникла после того, как они обновили Windows 10 до версии 1803. То же самое можно применить к 1809. И вместо того, чтобы ждать, пока Microsoft решит проблемы ODBC в их текущем выпуске, мы скорее предлагаем откат до предыдущей версии, где сервис был полностью функциональным.
Вот как перейти к предыдущей версии Windows 10:
- Откройте Настройки .
- Выберите Обновление и безопасность .
- Выберите Восстановление на левой панели.
- Нажмите « Вернуться к предыдущей версии Windows 10 ».
- Нажмите Начало работы и следуйте инструкциям.
При попытке создать DSN ODBC для драйверов, предоставляемых Microsoft Access администратором ODBC источников данных, попытка завершается ошибкой. Эта проблема возникает, если вы используете установку командной строки (C2R) Office. В зависимости от версии Office при выполнении этой операции могут возникнуть следующие проблемы:
Драйверы ODBC, предоставляемые ACEODBC.DLL, не перечислены в диалоговом окне " Выбор драйвера".
- Драйвер Microsoft Access (*.mdb, *.accdb)
- Текстовый драйвер Microsoft Access (*.txt, *.csv)
- Microsoft Excel драйвера (*.xls, *.xlsx, *.xlsm, *.xlsb)
Кроме того, при попытке определить подключение OLEDB из внешнего приложения (которое выполняется за пределами Office) с помощью поставщика OLEDB Microsoft.ACE.OLEDB.12.0 или Microsoft.ACE.OLEDB.16.0 OLEDB при попытке подключения к поставщику возникает ошибка "Поставщик не найден".
Причина
Установки устройств типа "нажми и работай" Office в изолированной виртуальной среде в локальной операционной системе. Некоторые приложения за Office могут не знать, где искать установку в изолированной среде.
Решение
Начиная с Приложения Microsoft 365 для Enterprise версии 2009, завершена работа по выходу ACE из пузырька виртуализации C2R, чтобы приложения за пределами Office могли находить интерфейсы ODBC, OLEDB и DAO, предоставляемые Access ядро СУБД в установке C2R.
Используйте следующую таблицу, чтобы понять, необходимы ли дополнительные компоненты для доступа к этим целочисленным интерфейсам в вашей среде:
Текущая Office установки | Необходимы дополнительные компоненты | Рекомендуемая дополнительная установка |
---|---|---|
Приложения Microsoft 365 для Enterprise, Office 2016/2019/2021 Consumer Version 2009 или более поздней версии | Нет | - |
Приложения Microsoft 365 для Enterprise, Office 2016/2019 до версии 2009 | Да | Microsoft Access 2013 среды выполнения |
Office LTSC 2021 г. (корпоративная лицензия) | Нет | - |
Office 2016/2019 Pro Plus C2R (корпоративная лицензия) | Да | Microsoft Access 2013 среды выполнения |
Office 2010/2013/2016 MSI | Нет | - |
Нет Office установки | Да | Microsoft 365 Access Runtime |
- Распространяемый компонент Microsoft Access ядро СУБД 2016 не является рекомендуемым решением для указанных сценариев, так как приложения Access ядро СУБД 2016 и M365 используют один и тот же основной идентификатор версии (16.0), что может привести к непредвиденным ситуациям. Office параллельное обнаружение также не позволит продолжить установку при обнаружении этого сценария.
- Распространяемый компонент Microsoft Access ядро СУБД 2010 больше не предлагается в качестве рекомендуемого решения, так как Office 2010 году достиг конца служба поддержки Майкрософт жизненного цикла.
Дополнительные сведения о создании подключений ODBC
Все экземпляры службы "нажми и Office" не могут создавать имена источников данных компьютера или системы из приложения Office или администратора ODBC источников данных.
У меня проблема с подключением ODBC, которое должно подключаться к таблице Excel и что-то с ней делать. Я уже много читал об этом в Интернете, но ни одно из решений мне не помогло (включая stackoverflow).
Итак, в основном я нахожусь в точке, где я пытаюсь установить соединение с таблицей.
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified", which is odd because I have those specified in the string named con.
Также стоит упомянуть, что в ODBC Data Source Administrator я ясно вижу, что у меня установлены и запущены эти драйверы.
Есть еще одна странность. Когда я вызываю следующий метод, который нашел в stackoverflow, он возвращает мне следующий список драйверов:
- "Driver da Microsoft para arquivos texto (*.txt; *.csv)"
- "Driver do Microsoft Access (*.mdb)"
- "Driver do Microsoft dBase (*.dbf)"
- "Driver do Microsoft Excel(*.xls)"
- "Driver do Microsoft Paradox (*.db )"
- "Microsoft Access Driver (*.mdb)"
- "Microsoft Access-Treiber (*.mdb)"
- "Microsoft dBase Driver (*.dbf)"
- "Microsoft dBase-Treiber (*.dbf)"
- "Microsoft Excel Driver (*.xls)"
- "Microsoft Excel-Treiber (*.xls)"
- "Microsoft ODBC for Oracle"
- "Microsoft Paradox Driver (*.db )"
- "Microsoft Paradox-Treiber (*.db )"
- "Microsoft Text Driver (.txt;.csv)"
- "Microsoft Text-Treiber (*.txt; *.csv)"
- "SQL Server"
- "SQL Server Native Client 11.0"
Ни в одном из них нет "* .xlsx", который является форматом файла, который я пытаюсь прочитать.
Следует отметить, что когда я на самом деле перехожу к regedit этим значениям, я ясно вижу:
Я упускаю что-то очевидное? Помогите, пожалуйста :)
РЕДАКТИРОВАТЬ: друг указал, что я должен предоставить больше информации, поэтому вот снимок экрана с regedit, администратором источника данных ODBC и доказательством того, что ACEODBC.DLL действительно существует на моем жестком диске:
После обновления Windows от 10 октября перестали работать драйверы ODBC Excel. При попытке чтения файла получаем следующую ошибку:
"Unexpected error from external database driver (1)"
Мы открываем файлы Excel в Delphi, используя соединение ADO со следующей строкой соединения:
Я могу заставить его работать, переключившись на Microsoft.ACE.OLEDB.12.0, но для этого всем нашим клиентам придется установить распространяемый компонент Microsoft Access Database Engine на все компьютеры, на которых они используют наше программное обеспечение.
У кого-нибудь есть другое решение или обходной путь? Заранее спасибо.
Подождите или попросите Microsoft (это новая проблема). К Делфи это не имеет никакого отношения. Я полагаю, что это вы написали в этой теме , не так ли?
Да, это был я. Я подумал, что это не имеет ничего общего с Delphi, но, возможно, у кого-то есть решение, специфичное для Delphi (например, альтернативные компоненты или FireDAC).
Ну, максимум альтернативный ODBC-драйвер. И пока не ясно, проблема в драйвере или в приложении Access. Точно знает только Microsoft.
На клиентской машине я удалил KB4041681 (Windows 7), который поставлялся с последним патчем Microsoft. На моей машине я удалил KB4041676 (Windows 10). После этого Microsoft.Jet.OLEDB.4.0 теперь работает.
Я надеюсь, что Microsoft скоро исправит эту ошибку.
@donhauro Я удалил KB4041681 (Windows 7), но все еще сталкиваюсь с «Непредвиденной ошибкой драйвера внешней базы данных» . Можете ли вы предложить мне любую другую альтернативу.
Есть одно решение. Замените "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1" на Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls; Extended Properties=\"Excel 12.0;HDR = YES; После этого изменения вам нужно будет установить 2007 Office System Driver: Data Connectivity Components по ссылке на компьютер клиента.
В ArcGIS Desktop 10.5.1 от ESRI (наиболее популярное программное обеспечение для обработки географических данных) не удалось открыть файлы Excel 2003 и .mdb.
Временное решение: удалить KB4041693, KB4041687 в windows 8.1 (возможно для w10).
В журнале изменений Microsoft обоих путей говорится об «обновлениях [. ] и обновлениях безопасности для Microsoft Jet». После удаления и перезапуска все программное обеспечение снова становится нормальным.
Читайте также: