Страница 5 из 10

Добавлено: Сб ноя 06, 2021 16:53
little-brother
Отлично :) Для инструкции правда так себе шаманизм.

А может было бы достаточно рядом с \1033 создать копию и назвать её \1046? Хотя если в реестре ищет, то видимо дохлый номер.

Добавлено: Сб ноя 06, 2021 18:39
Destiny
little-brother писал(а):А может было бы достаточно рядом с \1033 создать копию и назвать её \1046? Хотя если в реестре ищет, то видимо дохлый номер.
Именно. Не помогает.

Но в целом инструкция простой выходит.
1) Ставим драйвера 64 битные командой: accessdatabaseengine_X64.exe /quiet
ключ /passive в последней версии не проходит.
2) Потом по пути HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Common\FilesPaths
удаляем ключ mso.dll. Ну, или переименовываем в нечто: *mso.dll*
Разумеется "16.0" имеет смысл при установленном 2016 Офисе. Может тут быть и 14.0 и 10.0. И еще какие-то версии.
3) Содержимое папки c:\Program Files\Common Files\microsoft shared\OFFICE16\1033\ копируем в папку C:\Windows\System32
или в папку с установленным Total Commander'ом. Прям рядом с ехе.
4) Открываем xls файл, предварительно, конечно, удостоверившись, что наш плагин установлен и для 32 битного Тотала точно работает.
5) Первая попытка почему-то приводит к фризу всего Тотала. Поэтому мы через диспетчер убиваем его процесс.
6) Открываем Тотал64 заново и опять открываем xls файл. Теперь всё проходит на ура и беспроблемно. Как и все последующие разы;)

Добавлено: Вс ноя 07, 2021 13:40
Destiny
https://www.upload.ee/files/13614384/Co ... 9.rar.html
Это файлы из комплекта Офиса 64 битного. Те самые, что я брал и кидал из папки 1033 по умолчанию после установки драйверов. Только теперь это ресурс 1049. Т.е. инструкцию выше для Русскоговорящих можно дополнить пунктом 7, говорящим, что пункт 3 можно выполнить по другому - прилагаемые файлы из архива скопировать или в папку C:\Windows\System32 или в папку с установленным Total Commander'ом. Прям рядом с ехе.

Добавлено: Вс ноя 07, 2021 23:03
little-brother
О, спасибо. После релиза добавлю инструкцию в Wiki.
Файлы то ж куда-нибудь перехостю.

Добавлено: Пн ноя 08, 2021 16:06
Destiny
Кстати, пункт 5) Первая попытка почему-то приводит к фризу всего Тотала. Поэтому мы через диспетчер убиваем его процесс: оказывается не везде воспроизводится, что радует. Сейчас у человечка настроил этот плагин с этими дровами и у него с первого же раза все открылось. Никаких фризов, зависонов и тормозов. Так что пункт со *, так сказать.

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

Блин, чёт до меня ток ща дошло, а что - тип xlsM наш ODBC не может открыть? Засада однако(((

Добавлено: Пн ноя 08, 2021 20:18
little-brother
Насколько я могу судить, то в 32-битные ODBC драйвера этот формат не поддерживают, а вот 64-битные вполне и потому для 64-битной версии достаточно будет просто поменять DetectString у плагина.

Добавлено: Пн ноя 08, 2021 20:37
Destiny
little-brother писал(а):Насколько я могу судить, то в 32-битные ODBC драйвера этот формат не поддерживают, а вот 64-битные вполне и потому для 64-битной версии достаточно будет просто поменять DetectString у плагина.
А где-то доказательную базу можно найти? Статьи, обсуждения, ещё что-то?
Ибо я пробовал и эту строку менять, и обе битности проверял - как бы нигде и никак не работает...

Просто если никакой вменяемой ошибки не будет получено в ходе дебага, то ... даж не ясно - как ловить причину этой ошибки.
От плагина я получаю только стандартную отмазку "Cant' connect to database" - но мы то знаем, что это не очень полезная и полная ошибка((( А если ODBC не выдает какого-то аналога GetLastError(), то очень плохо...

И всё же что-то похожее должно быть в доступе.
https://social.msdn.microsoft.com/Forum ... aproviders
там указано, что в схожей ситуации человек всё же получает БОЛЕЕ звучные тексты ошибки/ошибок, что вышло(-ли) в результате попытки открыть файл xlsm. И там весьма хорошие коды есть. А у нас ничего похожего не выводится. Просто не смог и всё. И где и как - не ясно(((
Конечно там другой ЯП, но возможность получения текста ошибки не может же зависеть от этого.

Добавлено: Пн ноя 08, 2021 20:54
little-brother

Код: Выделить всё

} else if (_tcscmp(fileext, TEXT(".xlsx")) == 0 || _tcscmp(fileext, TEXT(".xlsb")) == 0) { ...
Как видно чего то не хватает :)

В коде надо править, в том числе сделать условную компиляцию, чтобы для 32-бит и 64-битные версии отдавали разные строки обнаружения.

Добавлено: Пн ноя 08, 2021 21:14
Destiny
little-brother писал(а):чтобы для 32-бит и 64-битные версии отдавали разные строки обнаружения
А эт прям-точно-точно надо? Вроде как что там, что тут - драйвер есть. Значит файл должен бы был браться)))

Добавлено: Пн ноя 08, 2021 21:46
little-brother
32-битный ODBC администратор не различает 32 и 64-битные драйверов и показывает их одним списком. Чтобы убедиться, достаточно запустить его (C:\Windows\SysWOW64\odbcad32.exe) и попробовать создать пользовательский DSN для Excel с xlsm. В результате вернет ошибку с odbcji32.dll, что верно.
Возможно после установки MADE x32 будет добавлен драйвер с .xlsm, но сомневаюсь. Надо будет проверить.

Добавлено: Вт ноя 09, 2021 11:03
Destiny
little-brother писал(а):и попробовать создать пользовательский DSN для Excel с xlsm. В результате вернет ошибку с odbcji32.dll, что верно.
Создал. Ошибок нет. Но не понятно как этим пользоваться и как проверить, что получившийся Франкенштейн работоспособен. Попробовал в пустой книге Экселя создать внешнее подключение, выбрал этот новый DSN, но на этапе выбора таблицы обломался. Типа нет ничего. Хотя точно есть.

Добавлено: Вт ноя 09, 2021 17:36
little-brother
После того, как в исходниках добавил xlsm в строку определения и в указанное выше место, то у меня файл открылся.

Отмечу, что MADE2010 x32 не содержит драйвера Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) и потому, чтобы открывать xlsm требуется версия 2016.

P.S. Пока не выкладываю, т.к. вношу правки для вкл/откл фильтров и темной темы, а также пытаюсь забороть косяк с курсором.
Также надо поправить размер областей в строке состояния, если у пользователя стоит 125% или 150% увеличение для текста.

P.P.S. С 2016 отвалился доступ к mdb. Удалил его, установил 2010, отвалился xlsm. Обычная история :D

Добавлено: Вт ноя 09, 2021 19:33
Destiny
little-brother писал(а):Отмечу, что MADE2010 x32 не содержит драйвера Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) и потому, чтобы открывать xlsm требуется версия 2016.
Я думаю даже и "на всякий случай" не стоит рассматривать вариант с предложением поставить 2010 версию дров. Только 2016)))
Так что считаем однозначным, что набор (*.xls, *.xlsx, *.xlsm, *.xlsb) должен поддерживаться плагином;)
little-brother писал(а):а также пытаюсь забороть косяк с курсором.
Тут такой момент - если не двигать мышь, то да - это заметно, но как только сдвигаешь хоть на мм. её, то курсор возвращается в обычному состоянию. Эт Раз. Два - для текстовых плагинов есть режим "показ курсора". Включается по F6. В Листере при просмотре/редактировании он работает. Может на это надо как-то реагировать более правильно? типа что-то там возвращать нужное при опросе плагина Тоталом, или самому следить за нажатием)))
И Три - попробуйте дважды быстро нажать F3/F5 - гарантирую - Вы обалдеете)) т.к. ваш плагин раскроется на полный экран. А этого явно не планировалось да и пользы нет от этого режима. Так что что-то надо делать с поддержкой нажатий F1-12.
И с поддержкой ESC - т.к. после активации поиска выйти по нажатию этой кнопки невозможно - оно не работает. Что-то становится типа главным topmost окном и перехватывает это нажатие.

Добавлено спустя 5 минут:
little-brother писал(а):С 2016 отвалился доступ к mdb
Это ж вроде Access'овская база данных? Ну, наверное, если и когда появятся пользователи этого чуда - то тогда и можно начать разбираться)))
Все ж хоть это и полноценный продукт Офиса и много что на нем держится, но вот чаще всего на быстрый просмотр ищут именно экселевские файлы.

Добавлено: Вт ноя 09, 2021 20:13
little-brother
дважды быстро нажать F3/F5 - гарантирую - Вы обалдеете))
Не, это был баг фикс как раз курсора. Я после поиска строки отправлял в окно Lister нажатие мышки и курсор приходил в норму, только вот при этом отваливается разделитель и выход по Esc, то есть клик не очень хорошее решение как оказалось. При быстром нажатии получается двойной клик и соответственно на весь экран раскрывается. Думаю на F11 добавить, чтобы штатно было (или у Lister своя комбинация?).

.mdb, да, Access. Сам никогда не пользовался, но вот тестирую и на нем. Понятно, что у него распространенность на порядок, а то и два, меньше чем у Excel. Никогда не видел ни одного продукта на этой СУБД.

Добавлено: Вт ноя 09, 2021 20:59
Destiny
little-brother писал(а):При быстром нажатии получается двойной клик и соответственно на весь экран раскрывается. Думаю на F11 добавить, чтобы штатно было (или у Lister своя комбинация?).
Чего-то не догоняю. Комбинация чего? Листер не может и не должен раскрываться на полный экран с потерей заголовка окна. Это глюк какой-то, что у вас эта возможность вообще появилась. От этого надо избавится!
К тому же есть факт падения тотала при "прыжках" то в полный экран, то обратно. Ясно, что это плагин где-то падает, но от этого не легче. Неее. такого "спецпоказа" не должно быть априори!