Показать полную графическую версию : Unable to load odbcji32.dll
Здравствуйте!
При работе с драйвером ODBC появляется сообщение об ошибке: Unable to load odbcji32.dll. Dll находится в папке \Windows\sysWOW64.
http://orkspb.ru/ODBCerror.png
Я пробовал разрегистрировать и зарегистрировать библиотеку снова, но получаю другое сообщение об ошибке: Модуль "odbcji32.dll" загружен, но точка входа DllRegisterServer не найдена.
http://orkspb.ru/odbcji32error.png
Я вхожу под учетной записью с правами Администратора, но все операции с файлом odbcji32.dll заблокированы.
Подскажите, пожалуйста, как можно решить проблему?
Petya V4sechkin
01-05-2019, 22:11
Dll находится в папке \Windows\sysWOW64
Это для 32-битных приложений.
А у вас 64-битное приложение?
Mathworks Matlab R2017b x64.
В папке \Windows\sysWOW64 находится версия odbcji32.dll 6.3.9600.17415.
Мне удалось найти в интернете версию 4.0.6305.0, но нигде нет указаний о ее разрядности.
Petya V4sechkin
02-05-2019, 11:11
Мне удалось найти в интернете версию 4.0.6305.0
Не надо искать файл.
Лучше поищите по запросу Unable to load odbcji32.dll - там понятно, что дело не в файле.
Я попробовал все способы, которые нашлись по этому запросу, поэтому и обратился на форум, что ничего не помогло.
Например, восстановление AccessDatabaseEngine_X64 в Панели управления не происходит, потому что он сразу удаляется.
Пробовал даже запускать regsvr32.exe из директорий \System32 и \SysWOW64 через Командная строка (Администратор).
Petya V4sechkin
02-05-2019, 11:55
AleksP, можете сделать лог Process Monitor (https://docs.microsoft.com/en-us/sysinternals/downloads/procmon) следующим образом:
запустите Process Monitor;
попытайтесь запустить MATLAB, чтобы получилась ошибка;
сохраните лог: меню File -> Save -> PML-формат;
заархивируйте и выложите на файлообменник, например dropmefiles.com.
Ошибка возникает даже при запуске Панель управления -> Источники данных ODBC (64-разрядная версия) при попытке настроить MS Access Database.
Смоделировал ее таким образом, лог файл загрузил по ссылке https://yadi.sk/d/9gCqUQqiYLqz3g.
Petya V4sechkin
02-05-2019, 14:38
AleksP, в логе проблема с файлом ACEWSTR.DLL из-за того, что у вас установлены 32-битные компоненты в папке C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14.
Панель управления -> Программы и компоненты -> удалите Microsoft Access Database Engine 2010.
Затем переустановите по ссылке Microsoft Access Database Engine 2010 Redistributable (https://www.microsoft.com/en-us/download/details.aspx?id=13255) версию x64.
Petya V4sechkin, я удалял этот компонент вчера, а потом установил снова AccessDatabaseEngine_X64.
Делал это через командную строку с правами Администратора с опцией /passive с последующим удалением mso.dll в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths.
Если этого не делать, то при установке возникает сообщение об ошибке:
http://orkspb.ru/Error.png
Это не помогло. Возможно другое решение проблемы?
Petya V4sechkin
02-05-2019, 17:22
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
http://orkspb.ru/ODBC32_1.png
http://orkspb.ru/ODBC64_1.png
Есть путаница с рабочими директориями Источников данных. Сейчас пути выглядят следующим образом:
http://orkspb.ru/Path32.png
http://orkspb.ru/Path64.png
Если пробовать подключить базу в Matlab через Database Explorer -> Configure Data Source -> Configure ODBC data source по-прежнему появляется сообщение об ошибке:
http://orkspb.ru/ODBCerror.png
Petya V4sechkin
03-05-2019, 09:42
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.
Petya V4sechkin
03-05-2019, 11:57
AleksP, в 64-разрядной системе в папке SysWOW64 лежат 32-разрядные файлы, а в папке System32 - 64-разрядные.
Что означает аббревиатура WOW64 (https://ru.wikipedia.org/wiki/WOW64)
сгенерировал ошибку в Matlab
Лог повреждён: The file (Logfile_Matlab.PML) is corrupt and cannot be opened.
Petya V4sechkin, пересоздал лог.
https://yadi.sk/d/conscLLzRmLMrw
Petya V4sechkin
03-05-2019, 13:18
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.
Petya V4sechkin
03-05-2019, 13:45
Уж больно не хочется переустанавливать полностью Office.
Не хотите - не переустанавливайте, проблема-то ваша :)
Можно и не полностью, а по очереди удалить Access, средства Office, общие средства Office и проверить работоспособность MATLAB.
Можно попробовать переустановить отдельно библиотеку ACEWSTR.DLL?
Нет смысла, там ведь не только она, но и ACEINTL.DLL и ACEODBCI.DLL, например.
Кстати, поищите, в каких папках 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.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.