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: Wed Oct 27, 2021 13:59    Post subject: Reply with quote

Quote:
В зависимости от разных условий они еще и могут быть оформлены с суффиксами вида "_0"\"_0_0"!

Пример файла можно? Я дополнительные окончания не могу получить. Возможно, что эти таблицы возникают при открытом файле в Excel, как и FilterDatabase.

Quote:
именованные регионы

Не знал о них. Да, они попадают в список таблиц. И если такое используется, то выкидывать их из списка наверно всё таки не стоит. Не включать в список таблицы, содержащие в именах $_..., видимо сработает.

Quote:
с пробелами в именах таблиц

Тут проблем нет - ODBC такие имена отдает сразу в кавычках. И в кавычках они отображаются в интерфейсе, что немного неправильно, но в целом не столь важно.

Quote:
Это как-то странно слегка

Плагин универсальный под разные базы. База - это набор таблиц. В случае с CSV каждая таблица - это файл, потому то и другие показываются.


Quote:
"прибит" ее размер намертво

Проверьте версию плагина. Если 0.9.2, то значит баг, если 0.9.0, то значит просто старая. Разделитель должен двигаться мышкой и его позиция сохраняется в ini.

Quote:
получаете вы просто набор данных

Именно, ODBC отдает набор данных без первой строки. Данные первой строки находятся уже вызовом специальных команд вида "ПолучитьИмяСтолбца".
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Wed Oct 27, 2021 16:15    Post subject: Reply with quote

Quote:
Пример файла можно? Я дополнительные окончания не могу получить

Нет, файлов нет - я в интернете нашел инфу, что попадались такие случаи при парсинге через ODBC. Да вам и не надо именно "получать" эти окончания. Просто когда будете проверять на схожесть с перечисленными предопределёнными системными именами таблиц, что я раньше выкладывал - не сравнивайте точно с именами - ищите подстроку, чтоб случай, когда попадется $_FilterDatabase_0 - можно было легко поймать и исключить из показа так же)))

P.S. Могу предположить, что эти суффиксы возникают, когда несколько однотипных элементов создается на листе экселя. Попробуйте нарисовать две таблицы на одном листе. И в каждой включить свой фильтр на заголовки таблиц. Два фильтра наверное должны дать две записи: $_FilterDatabase и $_FilterDatabase_0

Quote:
Проверьте версию плагина. Если 0.9.2
К сожалению, почему-то инфы о версии нигде толком нет в самом файле плагина. Только на имя архива с плагином можно ориентироваться. Ну тогда да - 0.9.2 версия.

*************
И попробовал я тут поставить эти 64битные драйвера принудительно:
accessdatabaseengine_X64.exe /passive /quiet
как рекомендуется в статье: knowledge.autodesk.com/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/How-to-install-64-bit-Microsoft-Database-Drivers-alongside-32-bit-Microsoft-Office.html
И да, они поставились. НО вот при использовании вылетает другая ошибка: Unable to load odbcji32.dll
Причем совершенно не ясно - а КТО это может даже пытаться загрузить 32 битную библиотеку. А она есть только по пути C:\Windows\SysWOW64\odbcji32.dll
Может надо еще какой компонент найти и подставить, где эта либа будет уже в форме 64бит.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Wed Oct 27, 2021 17:16    Post subject: Reply with quote

Quote:
почему-то инфы о версии нигде толком нет в самом файле плагина

Я думал pluginst.inf копируется и в нем есть версия, а он игнорируется. Надо будет добавить версию в readme.txt.
С разделителем получается баг, придется загрузиться в Win10 и проверить Sad
Спасибо, буду фиксить.

Quote:
C:\Windows\SysWOW64\odbcji32.dll

Нахождение либы в папке SysWOW64 говорит о том, что она 32-битная, и соответственно не может быть загружена. По идее после установки MADE что-то похожее должно появиться в системной папке, но видимо у MS была все-таки какая то причина отталкиваться от версии Офиса. Хотя ведь наверно можно два офиса разной битности поставить.

P.S. Проверил поведение плагина в Win10 - разделитель работает. Может быть проблема в ширине рамок окна и потому его позиция у вас отслеживается неверно? Попробуйте нажать на правую или левую границу (вся ширина 5 точек, так что придется прицелиться) разделителя и перетащить его с зажатой левой кнопкой.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Wed Oct 27, 2021 22:22    Post subject: Reply with quote

Что-то ошибочно данные вытаскиваются.
Есть таблица с промежуточными итогами
Так вот они не показаны в плагине.
www.upload.ee/files/13586811/_______output.xls.html
И значения итогов "4" нет в выводе плагина....

И все же что-то явно глупое с выводом имен колонок у этого ODBC происходит.
Откуда-то взялись F3|F4 в названиях....
Что-то надо придумывать с этим безобразием((((
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Wed Oct 27, 2021 22:29    Post subject: Reply with quote

Quote:
значения итогов "4" нет в выводе плагина

Насколько я могу судить это значение вычисляется при открытии книги и потому ODBC не имеет к ним доступа. Вы слишком многого ожидаете от ODBC и этого плагина Smile

Quote:
Откуда-то взялись F3|F4 в названиях

Лично мне очевидно, что имена колонок - это первая строка. В ней только два значения, но заполненных колонок на листе 4, поэтому Excel требуется как то их именовать и для этого используется Fn шаблон.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Oct 28, 2021 11:54    Post subject: Reply with quote

Quote:
Насколько я могу судить это значение вычисляется

А вы файл же открывали? А в ячейку с этим значением тыкали? Там не формула - там простое число. Совершенно простое число, такое же как и в других ячейках есть... Поэтому вопросы остаются вопросами. И ожидания от плагина прежние))
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Oct 28, 2021 12:31    Post subject: Reply with quote

Открывал. Я подумал, что это просто итог (не силен в Excel, т.к. не пользуюсь им).
Надо посмотреть почему теряется значение. Возможно у ячейки тип, который я не обрабатываю.

P.S. Плагин для csv готов.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Oct 28, 2021 14:07    Post subject: Reply with quote

Касательно ODBC. А вот такое там не проходит?
Code:

Sub Test()
   Dim conn As ADODB.Connection
   Dim rs As ADODB.Recordset
   Dim strConnection As String
   Dim sql As String

   ' Create the connection string.
   strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _
                   & "Data Source='d:\Downloads\_______output.xls';" _
                   & "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"
   ' Create the Connection and Recordset objects.
   Set conn = New ADODB.Connection
   Set rs = New ADODB.Recordset

   sql = "SELECT * FROM [Лист1$A1:E10]"

   ' Open the connection and execute.
   conn.Open strConnection
   Set rs = conn.Execute(sql)

   ' Check we have data.
   If Not rs.EOF Then
       ' Transfer result.
       ActiveSheet.Range("A1").CopyFromRecordset rs
       ' Close the recordset
       rs.Close
   Else
       MsgBox "Error: No records returned.", vbCritical
   End If

   ' Clean up
   If CBool(conn.State And adStateOpen) Then conn.Close
   Set conn = Nothing
   Set rs = Nothing
End Sub


собственно самое вкусное спрятано вот в этой строке:
Quote:
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source='d:\Downloads\_______output.xls';" _
& "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"

Во-первых, провайдер Microsoft.ACE.OLEDB.12.0 - он в состоянии читать как новый формат Excel XlsX, XlsB, XlsM,
так и старый-добрый xls. Разницу просто надо уточнить в подстроке "Extended Properties"
'Excel 8.0' для Excel 97-2003 Xls файлов. И 'Excel 12.0 Xml' для XlsX. И 'Excel 12.0' для XlsB. И 'Excel 12.0 Macro' для XlsM
Во-вторых, и это самое важное! Два след. элемента: HDR=NO;IMEX=1 гарантируют, что заголовки не будут выделяться
движком при разборе - всё будет считаться ТЕКСТОВЫМИ табличными данными! Что нам и нужно для простого показа.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Oct 28, 2021 14:25    Post subject: Reply with quote

Проблема в том, что ADO использует COM и на С его использовать не очень, в отличии от Delphi, которым я не пользуюсь. К тому же не охота разбираться еще и с ADO (с ODBC я разобрался ранее для другой вещи). В целом проще добавить крыжик Header row, как в csvtab-плагине, нежели переходить на ADO из-за этой мелочи. xlsb и прочие форматы вроде и так читаются плагином.

С 4 из Итого проблема понятна: тип столбца считается текстовым, а там число. В результате ODBC для такого поля возвращает пустое значение. Надо подумать как это обойти.

И да, решение нашлось, и даже наличие заголовка можно указать. Правда запросы выглядят максимально странно.
Code:

select * from [Excel 8.0;HDR=YES;IMEX=1;Database=d:/1.xls;]."Лист1$"


P.S. Просьба проверить разделитель областей еще раз.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Oct 28, 2021 16:20    Post subject: Reply with quote

Если уже вышел отдельный плаг под CSV, то в этом наверное стоит его поддержку вырезать как раз-таки. Ибо мешанина выйдет. Тут-то настроек никаких толковых нет и вряд ли стоит их планировать под этот формат, а вот в том плагине - им как раз и место светит логичное. Тот же символ-разделитель! Когда-нибудь но он же появится в настройках там, хотя бы и в виде параметра в INI файле. Да и показ в панельке слева всех "типа тоже csv" файлов рядом - такое себе удовольствие. Всё же когда открываешь четко один файл этого текстового формата, то ожидаешь увидеть только простую табличную форму с данными.

Quote:
P.S. Просьба проверить разделитель областей еще раз.

Не понял. Новой версии плагина я не вижу. Проверять в 0.9.2 - так уже проверялось - не пашет.
Наверное в 0.9.3 надо проверить, где и новый формат SELECT'a будет использоваться и CSV уберётся,
и возможно разделитель починится, и цвета для панелей/ячеек/подчеркиваний/выделений границ более чёткими
станут - как это на примере-скриншоте в первом посте показано(а то под вин10 всё очень слишком материалистично,
плоско, безградиентно, блёкло и невыразительно получается)?

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

Кстати, в ридми файлах надо не забыть проставить версионность!
В CSV'шном 0.9.0 пока ее нет. А обсуждалось, что полезно ее там иметь.
Новый сабж в 0.9.3 как раз пусть начнет эту добрую традицию))
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Oct 28, 2021 17:00    Post subject: Reply with quote

Quote:
Новой версии плагина я не вижу

Попробовать в текущей потаскать разделитель за крайние пиксели (выделил красным)
https://i.ibb.co/KXwxtbK/1.png

А почему CSV уберется? Пусть будет. Его настройки через schema.ini рулятся.

Да, с новых версий в readme буду версию указывать. Хотя наверно можно и в правом нижнем углу, как у csvtab.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Oct 28, 2021 20:16    Post subject: Reply with quote

Quote:
Да, с новых версий в readme буду версию указывать. Хотя наверно можно и в правом нижнем углу

И там и там - самое клевое)))

Quote:
Попробовать в текущей потаскать разделитель за крайние пиксели (выделил красным)

Я дико извиняюсь... Но вы хоть раз видели КАК это должно быть интуитивно для пользователя? Мышиный курсор должен менять форму над таким разделителем на специальный. Сам разделитель должен или слегка утолщаться, или слегка цвет менять при нахождении этого курсора над ним. Да мне просто в голову даже не пришло, что эти крайние пиксели для этого предназначены. Раз нет никаких сопутствующих эффектов, подчеркивающих начало операции по перетаскиванию разделителя - то значит этой операции и нет вообще. Ну и перетаскиваться должна какая-то специальная визуальная полоса, а не сами окна меняться наживую в размерах - чтоб избежать некрасивых спецэффектов постоянной перерисовки содержимого и левой и правой панелей.

А так формально да, если ухватиться за выделенное красным - тягается. НО! опять-таки - если уменьшать ширину панели, чтобы в нее не умещалось ее содержимое - полосы прокрутки не появляются.... А очень ожидались.

Quote:
А почему CSV уберется? Пусть будет. Его настройки через schema.ini рулятся.

В этом и проблема. Если бы все настройки были принципиально в каком-то мастере настроек - визуальном! то тогда это еще можно было бы пережить. А когда все делается только в INI файле - имхо, только самые стойкие будут использовать этот плагин для CSV, другие начнут искать другой(((
Да и реально - набор настроек для CSV может оказаться потенциально больше, чем можно и нужно для экселевских файлов поддерживать. Уж лучше это всегда в одном месте держать и дальше разрабатывать, чем перекидывать кодовую базу из одного плагина в другой...

И опять-таки - плагин для CSV - это для CSV, а не для всех текстовых файлов. Это оооочень странно и неудобно, когда в левой панели вылетают все текстовые файлы, что рядом с одним мне нужным CSV файлом в папке вместе расположены. Вы же понимаете, что эти текстовые файлы ну никоим образом просматривать в табличном представлении нет нужды/пользы... Точно так же как мы удаляем системные таблицы из просмотра - они же не с той информацией, что нам нужна, хранятся в файле. Так же и с csv - когда его открываешь - то редко рядом с ним еще десяток нужных csv найдешь, которые надо по-быстрому открыть.


Last edited by Destiny on Thu Oct 28, 2021 21:36; edited 1 time in total
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Oct 28, 2021 21:29    Post subject: Reply with quote

Ага, значит работает. Изменение курсора и рисовку разделителя другим цветом добавлю, раз возникло недопонимание. Отсутствие горизонтальной прокрутки - это баг Sad Исправлю.

Quote:
эти текстовые файлы ну никоим образом просматривать в табличном представлении нет нужды/пользы

Здесь не соглашусь. Зависит от того какие задачи решает пользователь. Случаи, когда CSV отдельно не нужен думаю не исключения.

Насчет визуальных настроек - их можно конечно сделать, но мне лень Very Happy
Предпочитаю делать так, чтобы в 99% случаев настройки менять не надо было, а если уж хочется, то придется в Wiki и ini лезть.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Oct 28, 2021 22:55    Post subject: Reply with quote

Quote:
Зависит от того какие задачи решает пользователь. Случаи, когда CSV отдельно не нужен думаю не исключения.

Вопросов не возникнет, если реализация поддержки CSV в этом плагине будет идентичной то, что есть в отдельном. А иначе кавардак. В том уже сейчас я могу режим Заголовков включать - а в этом не могу. Нуууу, допустим в след.версии и тут он появится, но! а если для CSV в ЭТОМ плагине кто-то предложит очень нужную и полезную примочку - потом надо будет не забыть перенести уже её в ТОТ плагин? Ибо будут же те, кто пользуется именно отдельным плагином под CSV. И примочек, которые полезны/нужны для отображения текстовой инфы из файлов CSV|TXT - может оказаться куда больше, чем для экселевских, практически бинарных. И - куда предпочтение по их внедрению отдавать будем? А если развитие ТОГО плагина реально кто-то начнет продвигать? Проект-то оупен-сорс. И как следить за тем, чтобы эти фишки оттуда сюда вовремя копировались? Ибо недальновидно будет делать разрыв в поддержке отображения одного и того же формата CSV на разных плагинах.

Quote:
то придется в Wiki и ini лезть.
Что порой не окажутся под рукой в нужный и срочный момент и .....?
Проекты же, ещё раз, оупен-сорс! И кто-то может всё равно и добавит-таки визуализации. Но почему это стоит отдавать кому-то? ))) имхо вот после реализации подобного на минималках и можно отправлять в реальное взрослое плавание эти плагины. Так сказать версия 1.0 Первая публичная)))
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Fri Oct 29, 2021 00:28    Post subject: Reply with quote

Сомневаюсь, что какие то новые фишки кто-то попросит. Да и odbc-плагин представляет базовую функциональность, в отличии от csvtab. Строку-заголовок разумеется добавлю и в odbc-плагин, т.к. она требутся и csv и xls.
К тому же, код приходится переносить между плагинами так и так, напр. F2 для перегрузки файла запросили для xmltab и понятно, что надо сделать это во всех.

Quote:
Что порой не окажутся под рукой в нужный и срочный момент

Очень и очень маловерятно. Это ж не платежное ПО, а просто плагин.
Аналогично и по тому, что кто-то доработает - черная магия (WinAPI/С), на которой разрабатывается, не сильно в моде сейчас. Большая часть плагинов вообще на Delphi написаны и у них вот есть шансы, что кто-то допишет.
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 2 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