Unable to load odbcji32.dll
Здравствуйте!
При работе с драйвером ODBC появляется сообщение об ошибке: Unable to load odbcji32.dll. Dll находится в папке \Windows\sysWOW64. Я пробовал разрегистрировать и зарегистрировать библиотеку снова, но получаю другое сообщение об ошибке: Модуль "odbcji32.dll" загружен, но точка входа DllRegisterServer не найдена. Я вхожу под учетной записью с правами Администратора, но все операции с файлом odbcji32.dll заблокированы. Подскажите, пожалуйста, как можно решить проблему? |
Цитата:
А у вас 64-битное приложение? |
Mathworks Matlab R2017b x64.
В папке \Windows\sysWOW64 находится версия odbcji32.dll 6.3.9600.17415. Мне удалось найти в интернете версию 4.0.6305.0, но нигде нет указаний о ее разрядности. |
Цитата:
Лучше поищите по запросу Unable to load odbcji32.dll - там понятно, что дело не в файле. |
Я попробовал все способы, которые нашлись по этому запросу, поэтому и обратился на форум, что ничего не помогло.
Например, восстановление AccessDatabaseEngine_X64 в Панели управления не происходит, потому что он сразу удаляется. Пробовал даже запускать regsvr32.exe из директорий \System32 и \SysWOW64 через Командная строка (Администратор). |
AleksP, можете сделать лог Process Monitor следующим образом:
|
Ошибка возникает даже при запуске Панель управления -> Источники данных ODBC (64-разрядная версия) при попытке настроить MS Access Database.
Смоделировал ее таким образом, лог файл загрузил по ссылке https://yadi.sk/d/9gCqUQqiYLqz3g. |
AleksP, в логе проблема с файлом ACEWSTR.DLL из-за того, что у вас установлены 32-битные компоненты в папке C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14.
Панель управления -> Программы и компоненты -> удалите Microsoft Access Database Engine 2010. Затем переустановите по ссылке Microsoft Access Database Engine 2010 Redistributable версию x64. |
Petya V4sechkin, я удалял этот компонент вчера, а потом установил снова AccessDatabaseEngine_X64.
Делал это через командную строку с правами Администратора с опцией /passive с последующим удалением mso.dll в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths. Если этого не делать, то при установке возникает сообщение об ошибке: Это не помогло. Возможно другое решение проблемы? |
AleksP, у вас установлены 32-битные компоненты
C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14 Office какой? Удалять/переустанавливать пробовали? |
Petya V4sechkin, установлено следующее программное обеспечение:
1) Windows 8.1 64-разрядная, процессор x64. 2) Office профессиональный плюс 10, 32-разрядная версия. 3) Mathworks Matlab R2017b x64. Я нигде не видел непосредственного запрета на совместное использование 32-х и 64-х разрядных компонент. Вопрос в том и состоит, как это можно настроить без переустановки Office. |
Petya V4sechkin,
Еще раз полностью удалил Microsoft Access Database Engine 2010 и установил AccessDatabaseEngine_X64.exe. В Администрирование -> Источник данных ODBC (32-разрядная и 64-разрядная версии) после этого появляется совместимость с 64-разрядными драйверами, которой не было до установки AccessDatabaseEngine_X64.exe Есть путаница с рабочими директориями Источников данных. Сейчас пути выглядят следующим образом: Если пробовать подключить базу в Matlab через Database Explorer -> Configure Data Source -> Configure ODBC data source по-прежнему появляется сообщение об ошибке: |
AleksP, можете сделать лог Process Monitor при попытке подключить базу в MATLAB.
Цитата:
|
Petya V4sechkin, возможно, что я не прав, но мне кажется странным, что 32-разрядный источник данных ODBC указывает на папку \sysWOW64, а 64-разрядный на папку \system32. Разве не должно быть наоборот?
https://yadi.sk/d/8rAlK3P8vuXdbw - сгенерировал ошибку в Matlab. При запуске Database Explorer -> Configure Data Source -> Configure ODBC data source, открывается 64-разрядная версия источника данных ODBC, но при нажатии на кнопку Добавить дважды возникает ошибка: Unable to loаd odbcji32.dll. |
AleksP, в 64-разрядной системе в папке SysWOW64 лежат 32-разрядные файлы, а в папке System32 - 64-разрядные.
Что означает аббревиатура WOW64 Цитата:
|
|
AleksP, в обоих логах ситуация аналогичная: C:\Windows\System32\odbcad32.exe (это 64-битный процесс, не обращайте внимания на циферки в имени) смотрит на библиотеку
C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\1049\ACEWSTR.DLL и далее вместо Load Image начинает искать её в системных папках и в PATH - это означает, что библиотека чем-то не нравится приложению (в данном случае не подходит по разрядности). Перед этим остальные библиотеки ACE (ACECORE.DLL, ACEERR.DLL, ACEODBC.DLL) нормально загружаются из папки с 64-битными файлами C:\Program Files\Common Files\microsoft shared\OFFICE14 По-видимому, 32-битный компонент Access Database Engine в составе Microsoft Office 2010 конфликтует с отдельно установленным Access Database Engine 2010 x64. Ну не могут 64-битные приложения загружать 32-битные библиотеки. |
Petya V4sechkin, Какое может быть решение?
Можно попробовать переустановить отдельно библиотеку ACEWSTR.DLL? Уж больно не хочется переустанавливать полностью Office. |
Цитата:
Можно и не полностью, а по очереди удалить Access, средства Office, общие средства Office и проверить работоспособность MATLAB. Цитата:
Кстати, поищите, в каких папках ACEWSTR.DLL, ACEINTL.DLL, ACEODBCI.DLL лежат. |
Petya V4sechkin, Microsoft Access удалил, но ошибка осталась.
Файлы ACEWSTR.DLL, ACEINTL.DLL, ACEODBCI.DLL находятся в папке C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\1049. |
AleksP, а в папке
C:\Program Files\Common Files\Microsoft Shared\OFFICE14\1033 их нет? Цитата:
|
Petya V4sechkin, в папке C:\Program Files\Common Files\Microsoft Shared\OFFICE14\1033 они тоже есть.
Компоненты Средства Office и Общие средства Office не удаляются полностью даже после удаления Microsoft OneNote. |
AleksP, можете просто удалить Office? Затем убедиться, что в папке
C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\1049 нет больше ACE* файлов. Затем установить 64-битный Office. |
Petya V4sechkin, Наверное, это самое простое и можно было сделать сразу, а мы уже потратили без малого неделю на обсуждение. ;-)
Так может все-таки проще в качестве эксперимента удалить ACE* файлы из папки C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\1049, предварительно сделав их резервную копию? |
Petya V4sechkin, Удаление файлов ACEWSTR.DLL, ACEINTL.DLL, ACEODBCI.DLL их папки C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\1049 решило проблему.
Сообщение об ошибке больше не появляется и база данных загружается в Matlab. Правда, Microsoft Access не работает без этих библиотек и если его переустановить/запустить, они снова появляются. Это можно решить без переустановки Office? |
Petya V4sechkin, Попутно в Excel появилась еще одна проблема, которая может быть и не связана с Access.
При запуске Excel появляется сообщение об ошибке: Полная переустановка Excel ничего не дала, как и восстановление Office. Конечно, можно работать и с этой ошибкой, нажимая на отмену предложений установки. Возможно, эту ошибку тоже можно как-нибудь устранить? |
AleksP, у вас есть какие-то причины не устанавливать 64-битный Office вместо 32-битного?
|
Petya V4sechkin, Какую версию порекомендуете в моем случае?
|
Время: 03:38. |
Время: 03:38.
© OSzone.net 2001-