[wlx] odbc-wlx - просмотр Access, Excel, CSV файлов
Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Next
|
View previous topic :: View next topic |
Author |
Message |
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Wed Nov 03, 2021 23:13 Post subject: |
|
|
little-brother wrote: | Не сработал этот плагин - есть другие. |
фишка в том, что на 32битном варианте этот плагин показал оооооочень вкусную скорость открытия экселевских файлов. Остальные и рядом не стояли. А т.к. в работе постоянно 64 битная версия Тотала, то очень бы хотелось довести до ума этот плагин)) Ну, точнее не его сам, а его окружение, в котором он должен работать. |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Thu Nov 04, 2021 17:02 Post subject: |
|
|
Попробуйте установить MADE x64 другого года (есть 2010 и 2016) и с флагом /passive.
Про ошибку с odbcji32.dll - инструкция от Autodesk мне кажетс должна помочь, если сделать как там написано (в том числе поправить реестр). |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Thu Nov 04, 2021 17:30 Post subject: |
|
|
little-brother wrote: | инструкция от Autodesk |
находил, пробовал. толку ноль.
Добавлено спустя 6 минут:
little-brother wrote: | Попробуйте установить MADE x64 другого года (есть 2010 и 2016) и с флагом /passive. |
Ну писал же - найти ЧТО и КАК поставить - не вопрос. Вопрос в том, что чего-то явно не хватает в итоге - ошибку выкидывает. Нужно для контроля именно полный стек всех загруженных либ иметь под рукой, чтобы было что с чем сравнивать и понимать - что куда коннектится, чтобы заработало. И вероятно именно что на 10 винде только. Т.к. на семерке походу что-то более проще делается = т.к. ВАШУ указанную на картинке ошибку я все же никак получить не могу, у меня отваливается намного раньше... |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Fri Nov 05, 2021 05:30 Post subject: |
|
|
Вот тут минимальный пример, который не требует ни загрузки TC, ни чего то еще - https://sgeproject.narod.ru/wlx/odbc-test.zip
Имя файла, в отличии от имени драйвера, в строке соединения ни на что не влияет: если удалось инициализировать ODBC, то выведет SUCCESS.
Кстати посмотрите в odbcad32 (для 64-битной версии), как у вас Excel драйвер именуется. Возможно дело в том, что как то по другому. |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Fri Nov 05, 2021 13:15 Post subject: |
|
|
little-brother wrote: | Вот тут минимальный пример |
Он выдает лишь вот это:
Code: | Error: Can't connection to Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Dbq=D:/2.xls;ReadOnly=0;
Env Error:
Dbc Error: |
Походу это ошибка именно уже коннекта к указанной базе. Её же у меня нет в этом месте.
Но, никаких других ошибок, связанных с ODBC нет. Мы что-то не то проверяем, имхо, в этом тесте.
Драйвер имеет конечно же точно такое же название, как и у вас указано. |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Fri Nov 05, 2021 14:04 Post subject: |
|
|
Я проверил у себя - имя файла значения на данном этапе не имеет.
Эта ошибка значит, что ODBC не может найти указанный драйвер.
Насколько я понял, все драйвера работают через одну dll
|
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Fri Nov 05, 2021 17:21 Post subject: |
|
|
little-brother wrote: | Насколько я понял, все драйвера работают через одну dll |
Нет, там сложная вязь зависимых либ, которые подгружаются по запросу. Поэтому нужен полный стек для анализа и именно с системы, где плагин полностью сработал. Иначе это гадание "встречу динозавра или не встречу". |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Fri Nov 05, 2021 18:19 Post subject: |
|
|
Я имел в виду, что точка входа одна.
Насколько я могу судить по поиску - проблема иногда встречается у других, но никто не пытался собрать набор рабочих dll.
Погуглив, нашел, что проблема скорее всего в том, что Windows при загрузке ODBC пытается использовать файлы из Program Files (x86)/Common Files/... вместо их версий из 64-битной папки. Вот тут человек подошел радикально и закинул 64-битные dll в system32. Для проверки этой версии достаточно переименовать c:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\ и попробовать запустить плагин. |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Fri Nov 05, 2021 21:17 Post subject: |
|
|
что меня еще удивляет, это то, что почему-то не найти этих драйверов, имеющих руссификацию. С одной стороны можно спросить - а чего там руссифицировать? А с другой отвечу - ведь изначально же именно подпапка Program Files\Common Files\Microsoft Shared\OFFICE14\1049 описывается на многих страницах, имеющих связь с этой проблемой. А \1049 это именно подпапка руссификации. А у меня есть только подпапка \1033 - т.е. инглиш.
А соответственно для 32 битных дров у меня есть именно полноценная подпапка \1049 в соответствующей (х86) ветке путей со всем схожим содержимым вида ACE*** и MSO*** dll. И даже файл справки там уже прилагается. На русском! А вот с 64битными дровами почему-то ничего такого нет. И это несмотря на то, что процесс их скачивания я начинал с русскоязычной страницы скачивания этих драйверов на офиц.сайте...
Так что как и в указанной вами ссылке через Process Explorer/Monitor - надо все же сперва получить полный стек загруженных либ для плагина на нормальной системе вин10, руссифицированной и 64 битной, с русским офисом 2016 х64 макс. установленным. И потом уже смотреть обозначенные там в списке либы, их полные пути и их формальное наличие в архиве установки драйверов или где-либо ещё. А потом собирать как бы СВОЙ вариант установщика со всеми затронутыми либами, который и раскидает их в нужные места, но уже в системе с 32 битным офисом)))
Просто подкинуть мой вариант подпапки, но ток в версии \1033, не помог - тотал/листер/плагин просто встали колом при попытке открыть экселевский файл после этого. |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Fri Nov 05, 2021 21:31 Post subject: |
|
|
Quote: | надо сперва получить полный стек загруженных либ на нормальной системе вин10, руссифицированной, 64 битной, с русским офисом 2016 х64 макс |
Я точно этим заниматься не буду - у меня Win10 только для тестов и она даже без русификации и Офиса
Про финт с папкой 1033 и 1046 не очень понял чего вы хотели этим добиться. Это ж просто локализация. Вроде как проблема в том, что Windows из 64-битного приложения пытается загрузить ACEODBC.DLL, находит 32-битную версию и не может ее загрузить. Если поместить этот файл (и часть соседних) в system32, то возможно тогда у них появится больший приоритет при выборе над 32-битной из Common Files.
P.S. Просьба проверить пред-релизную версию https://sgeproject.narod.ru/wlx/odbc-wlx-0.9.3-beta.zip насчет лишних таблиц в Excel. И да, поддержку csv выкинул - лень было делать Вкл/Выкл для строки заголовка. |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Sat Nov 06, 2021 12:26 Post subject: |
|
|
little-brother wrote: | Про финт с папкой 1033 и 1046 не очень понял чего вы хотели этим добиться. Это ж просто локализация. |
да, просто. НО на страницах сайтов, где обмусоливалась эта проблема и искались пути решения всегда фигурировала папка \1049. А у меня есть только \1033. Что очень странно. Да, те статьи старые - может тогда еще выпускался установщик этих драйверов совместно с соответствующим руссификатором. А сейчас этого почему-то нет. Ну а пока, если просто применять советы из тех статей, только заменяя 1049 на 1033 - то ничего полезного не выходит.
little-brother wrote: | Вроде как проблема в том, что Windows из 64-битного приложения пытается загрузить ACEODBC.DLL, находит 32-битную версию и не может ее загрузить. |
Нет. Именно эту либу плагин/система грузит правильную - "новую" 64битную. Не грузят сопутствующие либы, которые по запросу подгружаются. И среди прочих там есть либы руссификации))) Которые точно не те грузятся, т.к. они для 1033 языкового ресурса, а у меня система и офис на 1049 ресурсе "висят". И облом-с. Это как минимум.
little-brother wrote: | Если поместить этот файл (и часть соседних) в system32, то возможно тогда у них появится больший приоритет при выборе над 32-битной из Common Files. |
Угу, попробовал, и как написал выше - всё встало дыбом. Аж систему перезагружать пришлось. Т.е. бездумно подкидывать что-то куда-то нельзя. Надо сперва точно знать куда и что подкидывается при правильных сопутствующих условиях. И на основе этой информации уже формировать свой список "кукушек" для подкидывания в систему, где нарушена часть этих условий.
little-brother wrote: | Просьба проверить пред-релизную версию |
И как была таблица FilterDatabase на месте - так и осталась.... Я проверял на том же самом файле, что вам высылал. У вас же что - типа перестало её отображать? По вашим тестам что выходит-то? |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Sat Nov 06, 2021 12:33 Post subject: |
|
|
Убрал содержащие $_ и заканчивающиеся на _0 и _0_0. FilterDatabase оставил, там же вроде как вложенная таблица отображается. Или их тоже стоит убрать? |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Sat Nov 06, 2021 12:51 Post subject: |
|
|
little-brother wrote: | FilterDatabase |
Это всего-навсего наложенные фильтры на столбцах. Причем они активируются, только если открыть этот файл в экселе. А иначе это нулевой набор данных. Есть только имя. Т.е. можно и нужно игнорить.
А вообще игнорить нужно все те системные таблицы, что я показывал ранее в каком-то посту.
Кстати, решено именовать столбцы в стиле "F.." - а почему не привычно "Column#.."?
Добавлено спустя 5 минут:
little-brother wrote: | Убрал содержащие $_ и заканчивающиеся на _0 и _0_0. |
Насчет заканчивающихся на нули. Там подразумевается рекурсия. Т.е. если будет какой-то вложено-вложено-вложенный именованный запрос, то заканчиваться он будет на _0_0_0_0. Т.е. надо отсекать "_0", повторяющееся 1 и более раз. |
|
Back to top |
|
|
little-brother
Joined: 29 Sep 2021 Posts: 205
|
(Separately) Posted: Sat Nov 06, 2021 13:22 Post subject: |
|
|
Quote: | можно и нужно игнорить. |
Ок.
Quote: | все те системные таблицы |
Вобщем все, что в имени содержит $ и хвост.
Quote: | Т.е. надо отсекать "_0" |
Ок.
Подозреваю, что можно отсекать лишние таблицы, оставляя только с типом SYSTEM TABLE, который насколько могу судить задан только для листов (из дополнительных таблиц я вижу только $FilterDatabase и у нее тип TABLE).
Quote: | решено именовать столбцы в стиле "F.." - а почему не привычно "Column#.."? |
Потому что так столбцы именует ODBC драйвер, если указано, что первая строка не названия столбцов. Хотя заменю, раз уж глаз режет. |
|
Back to top |
|
|
Destiny
Joined: 15 Dec 2015 Posts: 241
|
(Separately) Posted: Sat Nov 06, 2021 17:28 Post subject: |
|
|
В общем да, проблемы 64битных драйверов связаны именно с тем, что в комплекте для установки есть и прописывается в реестр ТОЛЬКО 1033 языковой ресурс - т.е. инглиш. А система, после того как загружается первичный файл ACECORE.dll, тут же ищет по реестру прописанные ему в соответствии языковые ресурсы. Хз, конечно, что там такого языкового. Но ищет И т.к. в реестре есть только запись для "C:\Program Files\Common Files\microsoft shared\OFFICE16\1033\ACEINTL.DLL", хотя и искалось для 1049, то ничего нужного по нужному пути не находится. А находится лишь по существующему в реестре: "C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\1049\ACEINTL.DLL". И тут коса находит на камень. Либа пытается загрузиться:
Code: | 00:00:38.000: GetProcAddress(0x00007FFA5FA00000 [c:\program files\common files\microsoft shared\office16\MSO.DLL], 0x0000000000000D98) called from "c:\progra~1\common~1\micros~1\office16\ACEODBC.DLL" at address 0x00007FFA936D7931 and returned 0x00007FFA5FA0F7BC by thread 1.
00:00:38.015: GetProcAddress(0x00007FFA8BA70000 [c:\windows\system32\MSI.DLL], 0x00000000000000CB) called from "c:\program files\common files\microsoft shared\office16\MSO99LWIN32CLIENT.DLL" at address 0x00007FFA62C78A0F and returned 0x00007FFA8BB61740 by thread 1.
00:00:38.015: LoadLibraryExW("C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\1049\ACEODBCI.DLL", 0x0000000000000000, 0x00001000) called from "c:\program files\common files\microsoft shared\office16\MSO30WIN32CLIENT.DLL" at address 0x00007FFA73F92361 by thread 1.
00:00:38.015: Loaded "c:\program files (x86)\common files\microsoft shared\office16\1049\ACEODBCI.DLL" at address 0x0000000068DD0000 by thread 1. Successfully hooked module.
00:00:38.015: Unloaded "c:\program files (x86)\common files\microsoft shared\office16\1049\ACEODBCI.DLL" at address 0x0000000068DD0000 by thread 1.
00:00:38.031: LoadLibraryExW("C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE16\1049\ACEODBCI.DLL", 0x0000000000000000, 0x00001000) returned NULL by thread 1. Error: %1 Win32 (193).
00:00:38.281: LoadLibraryExW("ACEODBCI.DLL", 0x0000000000000000, 0x00001000) called from "c:\program files\common files\microsoft shared\office16\MSO30WIN32CLIENT.DLL" at address 0x00007FFA73F92361 by thread 1.
00:00:38.281: LoadLibraryExW("ACEODBCI.DLL", 0x0000000000000000, 0x00001000) returned NULL by thread 1. Error: (126).
|
Да, сам текст ошибки невозможно прочитать - глюк проги, что выводит зависимости. Но это оно, т.к. более ошибок нет за этим и есть вывод окна/диалога с текстом "Unable to load odbcji32.dll".
И как мы видим, если изначальная библиотека MSO.DLL + ACEODBC.DLL выбираются из правильной папки - для 64битных процессов, то вот библиотека ресурсов тянется "не оттуда": "c:\program files (x86)\common files\microsoft shared\office16\1049\ACEODBCI.DLL".
В итоге я скинул все 5 файлов из подпапки \1033 из пути "c:\Program Files\Common Files\microsoft shared\OFFICE16\1033\" в папку с Тоталом и ....
Первая загрузка почему-то опять обломалась. Тотал встал раком. Напрочь. Помогло лишь закрытие его. НО я решил рискнуть и второй раз открыть xls файл и... и он открылся))) Открылся нашим плагином в 64 битной версии)) с 64 битными дровами))) Все последующие попытки отрыть файл были успешны, быстры, безглючны! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|