Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[wlx] odbc-wlx - просмотр Access, Excel, CSV файлов
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Fri Feb 25, 2022 12:41    Post subject: Reply with quote

Quote:
Таких файлов много

Покопал немного. При построении списка таблиц, выкидываются те, которые имеют тип не SYSTEM TABLE, чтобы не попадали различные вложенные таблицы. Однако, если в имени листа есть пробелы, то его тип внезапно меняется на TABLE, и потому предположение оказалось неверным. В результате список таблиц был пустым.

Видимо надо по наличию хвоста после $ выкидывать.
Видимо надо действовать более хитро...

P.S. Изменил логику добавления листа в список таблиц: помимо проверки на SYSTEM_TABLE в список попадут и те, которые заканчиваются строго на $'.

Просьба потестировать, в том числе и на таблицах имеющих именнованные диапазоны и фильтры разные. Все ли данные в наличии или может есть что-то лишнее? В Excel не силен, многих его особенностей не знаю.
https://disk.yandex.ru/d/iWOiXPcfwuIDUg
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Fri Feb 25, 2022 14:06    Post subject: Reply with quote

little-brother wrote:
Просьба потестировать

кажется проблем больше нет.
разве что шероховатости. В названии листов остался знак $ в конце. Если уж по ему идет обрезание, то и его самого логично обрезать))

но если это упрощает использование листов во внутренних процедурах вызовов Select From - то конечно можно не убирать его.

И порядок листов странный. Не тот, что в открытой книге экселя.
У меня: "Export Worksheet", "Лист1", "Sheet2", "Лист 3"
в плагине: 'Sheet2$', 'Лист1$', 'Export Worksheet$', 'Лист 3$'
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Fri Feb 25, 2022 15:46    Post subject: Reply with quote

Quote:
В названии листов остался знак $ в конце

Кавычки то же, если в имени есть пробелы Wink Да, при запросе данных Excel требует этот знак вопроса и кавычки. По хорошему их надо убрать конечно, т.е. отображать одно имя, а запрашивать по другому. Подумаю, можно ли это сделать как то малой кровью.

Quote:
порядок листов странный

Это уже издержки ODBC. Он рассматривает книгу как СУБД, где таблицы не имеют порядка - в список они добавляются в том порядке, в каком ODBC их возвращает. Можно конечно его отсортировать по имени, но вот исходный порядок книги не думаю, что можно восстановить.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sat Feb 26, 2022 14:18    Post subject: Reply with quote

little-brother wrote:
Кавычки то же, если в имени есть пробелы Да, при запросе данных Excel требует этот знак вопроса и кавычки. По хорошему их надо убрать конечно, т.е. отображать одно имя, а запрашивать по другому. Подумаю, можно ли это сделать как то малой кровью.


Если они имеют реальный вес при формировании запросов, то фиг с ними. Пусть малая кровь будет значить, что мы будем видеть эти символы в именах листов. Главное, теперь нет проблем с просмотром ранее непросматриваемых файлов)))

Оформляться в релиз будет сборка скоро?
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sat Feb 26, 2022 15:22    Post subject: Reply with quote

Готово! Razz
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Mar 07, 2022 23:07    Post subject: Reply with quote

w w w . upload.ee/files/13944193/static.xls.html
там странная ошибка опять с именем листа...
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Tue Mar 08, 2022 00:47    Post subject: Reply with quote

Проблема в именах с подчеркиванием: символ _ не требует, чтобы имя таблицы было в кавычках, а я этот аспект забыл учесть и в результате получалось двойное окавычевание.

Фикс - https://disk.yandex.ru/d/xAqXaXgAOuqbuA
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Tue Mar 08, 2022 11:54    Post subject: Reply with quote

Ок, работает!
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Mar 21, 2022 23:35    Post subject: Reply with quote

В тексте ячейки экселя порой есть вставленный принудительно перенос на новую строку. Т.е. текст в обычном виде будучи вписанным - занимал бы всю длину ячейки - если бы мы ее визуально взяли и растянули на много нужных см. для прочтения ее текста. А после нажатия ALT+ENTER в тексте вставляется перенос строки и в ячейке появляется многострочный текст. И так можно уменьшать требуемый размер длины ячейки для прочтения ее содержимого. Так вот плаг такие тексты отображает просто слитно Crying or Very sad
Нет, я понимаю, что многострочность он не обязан и не умеет поддерживать в рамках одной ячейки виндового table-контрола. НО! может такой символ просто стоит заменить чистым пробелом?

А то в экселе это так:
Пример
много-много
строк

А в плагине это так:
Примермного-многострок

Не фига не читается((((
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Tue Mar 22, 2022 00:39    Post subject: Reply with quote

Отсутствие многострочности - это ограничение WIndows-контрола.
С заменой переноса строк на пробелы может быть проблема с производительностью. Сейчас когда ячейке отрисовывается, она запрашивает данные из кеша и выдает как есть. Сделать замену в кеше - неправильно, т.к. при копировании строк нужно отдавать оригинальный текст. Поэтому надо либо добавлять еще один кеш, где выполнена замена, либо отдавать текст с заменой на лету. Первый вариант делает код странным. Со вторым - надо либо с памятью колдовать (текст с заменой надо удалять) или будет ограничение в 255 символов, что не очень. Тупик.

По аналогичной причине я остановил разработку ссылок.

Есть вариант добавить всплывающую подсказку, если курсор стоит над ячейкой с переносами. Он мне также не кажется особо удачным.

Самое правильно видимо самому полностью отрисовывать ячейку, но мне с этим разбираться лень (там легко можно накосячить).
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Mar 24, 2022 12:09    Post subject: Reply with quote

Всё понятно))) вопросов больше не имеем!

ЗюЫю
хотя...
little-brother wrote:
Есть вариант добавить всплывающую подсказку, если курсор стоит над ячейкой с переносами.

Это хоть как-то бы спасло положение дел, имхо.
Но все на усмотрение автора оставим, конечно же.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Tue Mar 29, 2022 22:32    Post subject: Reply with quote

Хелп! СОС!
Очень занятная ситуация.
Есть два компа. Разных. Капитально. НО тотал со своими плагинами - один и тот же. Своя сборка.
И вот на последнем 0.9.7 сабже один и тот же экселевский файл - ПУСТОЙ!!! Созданный с нуля - пустой файл - на одном компе открывается в плагине, а вот на другом - ооочень молчаливо и наглухо грохает весь тотал. Дамп сохраняет лишь инфу, что в odbc-wlx.wlx!cbNewMain() + 0x4c5c bytes падение зафиксировано. Был бы дебаг вариант плагина - наверное с точностью до строки кода сказал бы что и где... НО чего нет - того нет. Ну и понятно дело - что пересылать вам: тоже не понятно что(((. Сборка же реально одинаковая везде и в полтора гига в архиве.... А на одной копии падает - на другой нет. Падение же воспроизводится даже на пустом файле - т.е. тут ничего особенного.
Как будем лечиться?
Есть визуал студия 2010 на всяк случай. Хоть и сборку делаете под MinGW..

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

Проверка 0.9.6 и 0.9.5 показало, что в 6 версии так же есть падение, а вот в 5 никаких проблем. Это все на то самом компе, где и увидел вообще падание. На другом - никакая версия не падает...
ОС на обоих компах - одна и та же: Win10 LTSC build 17763...
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Wed Mar 30, 2022 03:48    Post subject: Reply with quote

Попробуйте - https://disk.yandex.ru/d/P3nsAdJOAf-f7g
Добавил вывод сообщений после каждого этапа и отладочную информацию (убрал флаги -Os и -s и добавил -g). Интересует, что выводит последним.

Студия у меня то же есть, просто как то к Code::Blocks привык, который mingw по умолчанию использует и не такой жирный как Студия.

Quote:
и в полтора гига в архиве

Хотя кому это я про занимаемое место рассказываю Very Happy
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Wed Mar 30, 2022 11:43    Post subject: Reply with quote

Инициализация ОК
Соединение установлено
Параметры прочитаны
Компоненты созданы
Список таблиц получен
Найдена таблица
Найдена таблица
Список таблиц построен
Тема и шрифт заданы
Выбран первая строка в списке (шо за акцент? выбран мух? Laughing )

WMU_UPDATE_GRID - заголовок окна
Инициализация-ОК
Удалены предыдущие фильтры
Удалены предыдущие колонки
Добавлены кавычки для имени таблицы
ODBC запрос сформирован
ODBC запрос выполнен
ODBC обработка завершена
Обновление кеша выполнено

ДАМП........

И вот еще момент. Хоть сборка и одинаковая, но там, где падает, оказывается, я запускал с ярлыка 32битный тотал.
А вот в 64 битном тотале - плаг уже не падает! Т.е. собака порылась где-то в этой области!
Там идет уже после "Ширина колонок изменена", "Данные обновлены" и показывается окно плагина с требуемой таблицей.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Wed Mar 30, 2022 13:31    Post subject: Reply with quote

https://disk.yandex.ru/d/a_F0wf_kT8u8tw
Удалил вывод всех сообщений до этого и добавил подробное описание для операций по изменению ширины колонок. Достаточно последнее сообщение, т.к. они все равно по порядку идут.

Я думал, что где то ранее падает, а это похоже все-таки какая особенность Windows (в духе упасть, если окна нет и для него выставляется какой то стиль).
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
Page 7 of 10

 
Jump to:  
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