[wlx] odbc-wlx - просмотр Access, Excel, CSV файлов
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next  :| |:
Total Commander -> Плагины Total Commander

#46:  Author: Destiny PostPosted: Wed Nov 03, 2021 23:13
    —
little-brother wrote:
Не сработал этот плагин - есть другие.

фишка в том, что на 32битном варианте этот плагин показал оооооочень вкусную скорость открытия экселевских файлов. Остальные и рядом не стояли. А т.к. в работе постоянно 64 битная версия Тотала, то очень бы хотелось довести до ума этот плагин)) Ну, точнее не его сам, а его окружение, в котором он должен работать.

#47:  Author: little-brother PostPosted: Thu Nov 04, 2021 17:02
    —
Попробуйте установить MADE x64 другого года (есть 2010 и 2016) и с флагом /passive.

Про ошибку с odbcji32.dll - инструкция от Autodesk мне кажетс должна помочь, если сделать как там написано (в том числе поправить реестр).

#48:  Author: Destiny PostPosted: Thu Nov 04, 2021 17:30
    —
little-brother wrote:
инструкция от Autodesk

находил, пробовал. толку ноль.

Добавлено спустя 6 минут:

little-brother wrote:
Попробуйте установить MADE x64 другого года (есть 2010 и 2016) и с флагом /passive.

Ну писал же - найти ЧТО и КАК поставить - не вопрос. Вопрос в том, что чего-то явно не хватает в итоге - ошибку выкидывает. Нужно для контроля именно полный стек всех загруженных либ иметь под рукой, чтобы было что с чем сравнивать и понимать - что куда коннектится, чтобы заработало. И вероятно именно что на 10 винде только. Т.к. на семерке походу что-то более проще делается = т.к. ВАШУ указанную на картинке ошибку я все же никак получить не могу, у меня отваливается намного раньше...

#49:  Author: little-brother PostPosted: Fri Nov 05, 2021 05:30
    —
Вот тут минимальный пример, который не требует ни загрузки TC, ни чего то еще - https://sgeproject.narod.ru/wlx/odbc-test.zip
Имя файла, в отличии от имени драйвера, в строке соединения ни на что не влияет: если удалось инициализировать ODBC, то выведет SUCCESS.

Кстати посмотрите в odbcad32 (для 64-битной версии), как у вас Excel драйвер именуется. Возможно дело в том, что как то по другому.

#50:  Author: Destiny PostPosted: Fri Nov 05, 2021 13:15
    —
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 нет. Мы что-то не то проверяем, имхо, в этом тесте.

Драйвер имеет конечно же точно такое же название, как и у вас указано.

#51:  Author: little-brother PostPosted: Fri Nov 05, 2021 14:04
    —
Я проверил у себя - имя файла значения на данном этапе не имеет.
Эта ошибка значит, что ODBC не может найти указанный драйвер.

Насколько я понял, все драйвера работают через одну dll

#52:  Author: Destiny PostPosted: Fri Nov 05, 2021 17:21
    —
little-brother wrote:
Насколько я понял, все драйвера работают через одну dll

Нет, там сложная вязь зависимых либ, которые подгружаются по запросу. Поэтому нужен полный стек для анализа и именно с системы, где плагин полностью сработал. Иначе это гадание "встречу динозавра или не встречу".

#53:  Author: little-brother PostPosted: Fri Nov 05, 2021 18:19
    —
Я имел в виду, что точка входа одна.
Насколько я могу судить по поиску - проблема иногда встречается у других, но никто не пытался собрать набор рабочих dll.

Погуглив, нашел, что проблема скорее всего в том, что Windows при загрузке ODBC пытается использовать файлы из Program Files (x86)/Common Files/... вместо их версий из 64-битной папки. Вот тут человек подошел радикально и закинул 64-битные dll в system32. Для проверки этой версии достаточно переименовать c:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\ и попробовать запустить плагин.

#54:  Author: Destiny PostPosted: Fri Nov 05, 2021 21:17
    —
что меня еще удивляет, это то, что почему-то не найти этих драйверов, имеющих руссификацию. С одной стороны можно спросить - а чего там руссифицировать? А с другой отвечу - ведь изначально же именно подпапка 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, не помог - тотал/листер/плагин просто встали колом при попытке открыть экселевский файл после этого.

#55:  Author: little-brother PostPosted: Fri Nov 05, 2021 21:31
    —
Quote:
надо сперва получить полный стек загруженных либ на нормальной системе вин10, руссифицированной, 64 битной, с русским офисом 2016 х64 макс

Я точно этим заниматься не буду - у меня Win10 только для тестов и она даже без русификации и Офиса Very Happy

Про финт с папкой 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 выкинул - лень было делать Вкл/Выкл для строки заголовка.

#56:  Author: Destiny PostPosted: Sat Nov 06, 2021 12:26
    —
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 на месте - так и осталась.... Я проверял на том же самом файле, что вам высылал. У вас же что - типа перестало её отображать? По вашим тестам что выходит-то?

#57:  Author: little-brother PostPosted: Sat Nov 06, 2021 12:33
    —
Убрал содержащие $_ и заканчивающиеся на _0 и _0_0. FilterDatabase оставил, там же вроде как вложенная таблица отображается. Или их тоже стоит убрать?

#58:  Author: Destiny PostPosted: Sat Nov 06, 2021 12:51
    —
little-brother wrote:
FilterDatabase

Это всего-навсего наложенные фильтры на столбцах. Причем они активируются, только если открыть этот файл в экселе. А иначе это нулевой набор данных. Есть только имя. Т.е. можно и нужно игнорить.

А вообще игнорить нужно все те системные таблицы, что я показывал ранее в каком-то посту.

Кстати, решено именовать столбцы в стиле "F.." - а почему не привычно "Column#.."?

Добавлено спустя 5 минут:

little-brother wrote:
Убрал содержащие $_ и заканчивающиеся на _0 и _0_0.

Насчет заканчивающихся на нули. Там подразумевается рекурсия. Т.е. если будет какой-то вложено-вложено-вложенный именованный запрос, то заканчиваться он будет на _0_0_0_0. Т.е. надо отсекать "_0", повторяющееся 1 и более раз.

#59:  Author: little-brother PostPosted: Sat Nov 06, 2021 13:22
    —
Quote:
можно и нужно игнорить.

Ок.

Quote:
все те системные таблицы

Вобщем все, что в имени содержит $ и хвост.

Quote:
Т.е. надо отсекать "_0"

Ок.

Подозреваю, что можно отсекать лишние таблицы, оставляя только с типом SYSTEM TABLE, который насколько могу судить задан только для листов (из дополнительных таблиц я вижу только $FilterDatabase и у нее тип TABLE).

Quote:
решено именовать столбцы в стиле "F.." - а почему не привычно "Column#.."?

Потому что так столбцы именует ODBC драйвер, если указано, что первая строка не названия столбцов. Хотя заменю, раз уж глаз режет.

#60:  Author: Destiny PostPosted: Sat Nov 06, 2021 17:28
    —
В общем да, проблемы 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 битными дровами))) Все последующие попытки отрыть файл были успешны, быстры, безглючны!



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next  :| |:
Page 4 of 10

Powered by phpBB © 2001, 2005 phpBB Group