Войти

Показать полную графическую версию : Unable to load odbcji32.dll


Страниц : [1] 2

AleksP
01-05-2019, 21:06
Здравствуйте!

При работе с драйвером 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-битное приложение?

AleksP
02-05-2019, 09:23
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 - там понятно, что дело не в файле.

AleksP
02-05-2019, 11:25
Я попробовал все способы, которые нашлись по этому запросу, поэтому и обратился на форум, что ничего не помогло.
Например, восстановление 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.

AleksP
02-05-2019, 12:26
Ошибка возникает даже при запуске Панель управления -> Источники данных 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.

AleksP
02-05-2019, 15:31
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 какой? Удалять/переустанавливать пробовали?

AleksP
03-05-2019, 00:24
Petya V4sechkin, установлено следующее программное обеспечение:

1) Windows 8.1 64-разрядная, процессор x64.
2) Office профессиональный плюс 10, 32-разрядная версия.
3) Mathworks Matlab R2017b x64.

Я нигде не видел непосредственного запрета на совместное использование 32-х и 64-х разрядных компонент.
Вопрос в том и состоит, как это можно настроить без переустановки Office.

AleksP
03-05-2019, 09:37
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.

Есть путаница с рабочими директориями Источников данных. Сейчас пути выглядят следующим образом:
Где именно путаница?

AleksP
03-05-2019, 11:48
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.

AleksP
03-05-2019, 12:28
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-битные библиотеки.

AleksP
03-05-2019, 13:30
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 лежат.

AleksP
03-05-2019, 17:46
Petya V4sechkin, Microsoft Access удалил, но ошибка осталась.

Файлы ACEWSTR.DLL, ACEINTL.DLL, ACEODBCI.DLL находятся в папке C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\1049.




© OSzone.net 2001-2012