[WLX] SQLite Viewer
Select messages from
# through # FAQ
[/[Print]\]

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

#1: [WLX] SQLite Viewer Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Aug 02, 2013 10:36
    —
Простой плагин для просмотра файлов DB баз данных SQLite.
Скачать

Кто пробовал?
Мне не удалось запустить. TC 8.01 & (Windows 7 x86 | Windows XP x86).

#2: Re: [WLX] SQLite Viewer Author: ProgMan13 PostPosted: Fri Aug 02, 2013 19:42
    —
Maximus wrote:
Мне не удалось запустить.

Вообще ни с каким файлом?
Некоторые базы (с триггерами, например) плагин сейчас действительно не открывает.

#3:  Author: CaptainFlintLocation: Москва PostPosted: Fri Aug 02, 2013 20:46
    —
Попробовал на Firefox-профиле, ни один sqlite-файл у меня тоже не открылся. Не знаю, с триггерами они там или нет…

TC 8.01, Win7 SP1 32-bit, FF 22.0

#4:  Author: ProgMan13 PostPosted: Fri Aug 02, 2013 21:07
    —
CaptainFlint wrote:
Попробовал на Firefox-профиле, ни один sqlite-файл у меня тоже не открылся.

Что за фалы? Файл urlclassifier3.sqlite открывается, если поменять расширение на db.

#5:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Aug 02, 2013 21:55
    —
ProgMan13
Я пробовал открывать файл, который формируется моим tcPhonebook.
Про триггеры тоже ничего не знаю.

#6:  Author: Lev PostPosted: Fri Aug 02, 2013 22:08
    —
А альтернативным SQLLite показывается?

#7:  Author: CaptainFlintLocation: Москва PostPosted: Fri Aug 02, 2013 22:40
    —
ProgMan13 wrote:
Что за фалы? Файл urlclassifier3.sqlite открывается, если поменять расширение на db.

Такого файла у меня вообще нет. Я взял просто список всех файлов с расширением sqlite в профиле FF и его локальных данных (с подкаталогами) и потыкал на них F3. Что расширение ограничивается только DB и DB3, не обратил внимания. Как-то повнятней бы это акцентировать в ридми, что DB — это именно необходимое расширение, а не просто общепринятое сокращение слова database. Кстати, заодно добавить бы в список поддерживаемых расширений SQLITE.

Теперь, зная источник проблемы, проверил с расширениями db: открылись только некоторые из файлов, а именно:
downloads.db
formhistory.db
index.db
permissions.db
signons.db
На остальных плагин просто не загрузился. (А когда я попробовал пробежаться по ним в режиме быстрого просмотра Ctrl+Q, то на первом таком файле отхватил исключение EEDFADE.)


Lev wrote:
А альтернативным SQLLite показывается?

Показывается, но из-за глюков плагина сложно понять, правильно ли. Он там содержимое таблиц не перерисовывает, оставляет старое, да и список таблиц иногда содержит что-то лишнее: в SQLiteViewer их нет, а сам SQLite при щелчке на такой таблице говорит, что её нема, так что неясно, с чего он вообще добавил её в список.

#8:  Author: Lev PostPosted: Fri Aug 02, 2013 22:50
    —
А точно, пытался убрать баг с неперерисовкой да забросил это дело. Тут полуфабрикат. В папке плагина д.б. sqlite3.dll.

#9:  Author: Tol!kLocation: Арзамас PostPosted: Fri Aug 02, 2013 23:09
    —
Сабж сработал на след. файлах из профиля FF.22
Code:
chromeappsstore.sqlite
downloads.sqlite
formhistory.sqlite
permissions.sqlite
search.sqlite
signons.sqlite

Файла urlclassifier3.sqlite у меня нет


Last edited by Tol!k on Fri Aug 02, 2013 23:11; edited 1 time in total

#10:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Aug 02, 2013 23:10
    —
Lev wrote:
А альтернативным SQLLite показывается?

Показывается. Частично правильно - UTF-8 отображается сами понимаете как.

#11:  Author: ProgMan13 PostPosted: Sat Aug 03, 2013 00:57
    —
Версия 1.5:
http://progman13.totalcmd.net/downloads/wlx_SQLiteViewer_1.5.zip

#12:  Author: CaptainFlintLocation: Москва PostPosted: Sat Aug 03, 2013 13:58
    —
ProgMan13
В версии 1.5 все файлы открылись успешно. Теперь имею следующие репорты/виши:
  1. При просмотре файлов cookies.db, places.db, webappsstore.db в текущем каталоге создаётся пара одноимённых файлов с расширениями db-shm и db-wal. Нельзя ли их создавать, скажем, во временном каталоге? А то так и существующий файл можно случайно уничтожить (например, если другая программа работает с той же базой и создала такую же пару файлов).
  2. Выше писал уже реквест: добавить ext="SQLITE" в detect-строку.
  3. Размеры колонок выставляются по крайне странному алгоритму, так что для коротких строк выделяется едва не полэкрана, а в колонках с длинными строками выводится буквально несколько символов. Ручная настройка сбрасывается, едва выполнишь новый запрос (включая выбор таблицы). Думаю, оптимальным алгоритмом здесь было бы выставление размера колонки равным максимальной длине строки (разумеется, с учётом длины самого заголовка — названия колонки), но с отсечкой по максимально допустимой ширине в пикселях (желательно, конфигурируемой).
  4. Реквест: По двойному щелчку на границе между колонками выставлять ширину левой колонки по максимальной длине строки в ней (как делается почти во всех приличных программах с табличным выводом). Если будет реализован предыдущий реквест, то, разумеется, здесь ограничение максимальной ширины работать не должно: пользователь явно запрашивает показ полного содержимого. Разве что вывести предупреждение при наличии строк совсем уж запредельной длины. Размер запредельности при этом было бы неплохо конфигурировать.
  5. Реквест: Если в запросе не меняется таблица, то оставлять размеры колонок теми, что пользователь выставил вручную. Если набор колонок поменялся, то, естественно, это относится только к тем, которые присутствовали в предыдущем запросе. Впрочем, если бы плагин сохранял все эти размеры (в привязке к имени базы и таблицы) долговременно, это было бы вообще супер.
  6. Реквест: Сортировка по щелчку на заголовке колонки. Например, добавлением order by в запрос. (Если не будет реализован предыдущий реквест, то хотя бы здесь надо будет дополнительно сохранить и восстановить текущие ширины колонок, а то такие дёрги при пересортировке — это будет совсем уж нехорошо.)
  7. Прокрутка нетипичная и неудобная. а) По вертикали прокручивается не содержимое, а почему-то курсор. б) При вертикальной прокрутке сбрасывается позиция горизонтальной прокрутки. в) Содержимое обновляется только после отпускания бегунка. г) Клавиши влево-вправо не прокручивают влево-вправо, а двигают курсор вверх-вниз.
  8. Хорошо бы сохранять историю запросов и выводить её в выпадающем списке, прицепленном к соответствующему полю.
  9. Для быстрого просмотра выбор таблицы из выпадающего списка крайне неудобен. В плагине SQLLite это сделано гораздо лучше (список слева от результата запроса, где таблицу можно выбрать одним щелчком).
  10. В некоторых таблицах вместо значения показывается просто (Blob). Хорошо бы блобы тоже показывать, потому что по факту там вполне может оказаться текст (плагин SQLLite вполне с этим справляется, например, файл content-prefs.db, таблица prefs, колонка value). Может быть, стоит сделать опционально показ текста или бинарного дампа в шестнадцатеричном виде (с быстрым переключением между ними в интерфейсе плагина).
  11. Было бы очень полезно увидеть где-нибудь не только содержимое таблиц, но и их структуру. Хотя бы в форме запроса "create table…".
Кажись, пока всё. Smile


Last edited by CaptainFlint on Sat Aug 03, 2013 20:53; edited 1 time in total

#13:  Author: Skif_off PostPosted: Sat Aug 03, 2013 14:54
    —
ProgMan13
Копирование не работает?

#14:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Sat Aug 03, 2013 19:43
    —
ProgMan13
Мой файл теперь тоже открывается. Спасибо.

#15:  Author: ProgMan13 PostPosted: Sun Aug 04, 2013 02:56
    —
CaptainFlint
1. Особенности используемой библиотеки, отписал автору.
2. В 1.5 и появилось.
3. + Всем строкам по умолчанию выделяется побольше места. "Выставление размера колонки равным максимальной длине строки" - это чтение всей таблицы (т.е. долго), но возможно, будет такой выбор. Пока сделал для первой 1000 без ограничений по длине.
4. + Авторазмер колонки по двойному щелчку реализован.
5. Полностью нет (может, пока что). На данном этапе размер колонок ни к чему не привязан, т.е. надо будет сохранять соответствие названия колонки к размеру.
6. + Сортировка по order by.
7. Такое поведение у контрола.
8. Пока нет.
9. А вот это очень спорный вопрос.
10. Тут и пункт 7, и особенности библиотеки...
11. + Вроде, добавил.

Пункты 4 и 6 могут глючить.

По поводу используемых компонентов (и пункта 10 в частности) - это какая-никакая скорость работы и отсутствие необходимости в sqlite3.dll.
Что-то нашёл для примера, но там всего 140 тысяч записей:
http://sv-utils.googlecode.com/svn/trunk/SQLite3/Bin/test.db

Skif_off
Что нужно копировать?

Версия 1.6:
http://progman13.totalcmd.net/downloads/wlx_SQLiteViewer_1.6.zip

#16:  Author: Skif_off PostPosted: Sun Aug 04, 2013 15:52
    —
ProgMan13
Все тот же places.sqlite, выделил строку, жмакнул Ctrl+C по привычке и - ничего Smile Так и должно быть?

#17:  Author: ProgMan13 PostPosted: Tue Aug 06, 2013 00:43
    —
Skif_off wrote:
выделил строку, жмакнул Ctrl+C по привычке и - ничего Smile Так и должно быть?
Теперь есть пункт меню.

CaptainFlint
1. Это файлы журналов, так создана база данных. Из источников только для чтения такая база не откроется:
http://www.sqlite.org/tempfiles.html#walfile
http://www.sqlite.org/wal.html
7. Чуть-чуть подправил, но всё равно эти "нетипичные перемещения" остались.
9. SQLiteViewer.ini - [SQLiteViewer] - ShowTablesPanel=1
10. Тоже в ini: BlobAsText=1, BlobAsTextLimit=150

#18:  Author: Schumi PostPosted: Thu Aug 08, 2013 15:18
    —
Автору большое спасибо. Пользовался до этого старым 2009 года (xBaseView не хотел работать). А здесь и имена в utf и шрифт приятный.

Я так понимаю ini файл поддерживает пока только ShowTablesPanel/BlobAs? Просто интересно узнать все параметры для настройки.

Было бы здорово, если бы фокус был сразу на панели таблиц, чтобы без мыши можно было перейти к нужной таблице. А если бы ещё запоминалась последняя открытая таблица по каждой базе, вообще замечательно.

#19:  Author: Schumi PostPosted: Sat Aug 10, 2013 01:55
    —
Плюс хорошо бы режим "Fit columns to window" сделать более интелектуальным. Не просто делать ширину всех колонок одинаковыми, а если для ряд колонок этот одинаковый размер избыточен, то подстраивать их ширину под необходимый текст.

#20:  Author: CaptainFlintLocation: Москва PostPosted: Sat Aug 10, 2013 12:58
    —
ProgMan13
Сорри, что долго не реагировал, всё руки не доходили.

Посмотрел 1.7, доработки отличные!
1. По спец-файлам и read-only — OK, понял.
2. detect-строка: в 1.5 почему-то не появилась, но в 1.7 всё нормально.
3. Теперь то, что надо. По поводу вопроса на почту (дефолтное ограничение): в текущей ситуации больше, чем размер экрана, выставлять колонки смысла нет (отдельно опишу проблему ниже, см. пункт 13).
4. Выставление ширины по двойному щелчку подтверждаю, глюков пока не заметил.
6. Сортировку по щелчку подтверждаю, глюков не заметил.
7. Да, с прокруткой стало чуточку лучше.
9. Список таблиц: отлично! Единственное, выпадающий список в таком варианте, наверное, всё-таки лишний.
10. Текстовый блоб показывается, но вместо двоичного теперь просто пустые ячейки (файл places.db, таблица moz_favicons, колонка data). Непонятно, почему, уж текст ‰PNG для PNG-содержимого в виде текста должен был бы отобразиться.
11. Структура таблиц — подтверждаю.

Спасибо за улучшения! Теперь немножко новых репортов. Smile
12. Плагин, как я понял, ищет INI-файл только в своём каталоге. Хорошо бы предусмотреть его расположение в каталоге рядом с wincmd.ini, чтобы нормально работать в системах, где TC установлен в защищённое от записи местоположение.
13. Прокрутка ведётся строго по границам ячеек, а не плавно. В результате мы не имеем вообще никакой возможности посмотреть содержимое ячейки с длиной, превышающей ширину окна (а по максимуму — ширину экрана). Если контрол совершенно невозможно заставить прокручиваться по-людски, то, может, получится в таких ячейках отображать текст в несколько строк, добавляя переносы по правой границе ячейки?
14. Присоединяюсь к пожеланию:
Schumi wrote:
Плюс хорошо бы режим "Fit columns to window" сделать более интелектуальным.

#21:  Author: ProgMan13 PostPosted: Mon Aug 12, 2013 02:53
    —
Schumi wrote:
Было бы здорово, если бы фокус был сразу на панели таблиц, чтобы без мыши можно было перейти к нужной таблице. А если бы ещё запоминалась последняя открытая таблица по каждой базе, вообще замечательно.
В будущем, в принципе, возможно

Quote:
Плюс хорошо бы режим "Fit columns to window" сделать более интелектуальным
Это простая функция, она не проверяет размер текста. В новой версии она отталкивается от размера колонок.

CaptainFlint
9. Пусть [пока] будет
10. Это движок SQLite. Видимо, зависит от символов в таком поле
12. В следующей версии
13. Если честно, мы не сможем увидеть текст длиннее 255 символов. Так что, на некоторых разрешениях можно увидеть весь текст. С переносом текста я совершенно не уверен из-за реализации. На всякий случай добавил пункт меню Record View.

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

Должен в некоторых случаях устранять мерцание:
FixDrawErrors=1

Не даёт перескакивать к первой колонке при прокрутке за бегунок:
FixScrollError=0
При этом должен в некоторых случаях устранять мерцание (на медленных компьютерах - хм, медленно):
FixScrollDrawError=0

У чётной строки другой цвет:
GridOddRowOtherColor=1
Сам цвет чётной строки:
GridOddRowColor=$00F4F4F4

http://progman13.totalcmd.net/downloads/wlx_SQLiteViewer_1.7.5.zip

#22:  Author: Schumi PostPosted: Mon Aug 12, 2013 11:41
    —
ProgMan13 а на чём написан плагин? Делфи?

#23:  Author: ProgMan13 PostPosted: Mon Aug 12, 2013 17:28
    —
Schumi
Да, Delphi.

Ошибка в ключах ini:
Не FixScrollDrawError=0, а
FixDrawScrollError=0

#24:  Author: ProgMan13 PostPosted: Sat Sep 07, 2013 21:54
    —
Версия 1.8:
* обновлён движок SQLite;
* базы данных сейчас открываются в режиме "только для чтения" (PRAGMA query_only);
* исправлен показ таблиц с пробелом в имени;
+ двойной щелчок по записи открывает окно её просмотра (Record View);
* BlobAsTextLimit может быть увеличен до 2000 знаков (20..2000, по умолчанию 150);
+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
ShowTablesCombobox=1 - вкл/выкл выпадающий список таблиц (по умолчанию 1)
StringLengthLimit=255 - лимит символов для отображения строк (20..2000, по умолчанию 255)
SkipSystemTables=0 - не добавлять в список таблиц системные таблицы (начинаются на "sqlite_") (по умолчанию 0).

Предупреждение. После увеличения лимита символов для Blob полей (да и для строковых) большие базы могут не открываться из-за нехватки памяти.

http://progman13.totalcmd.net/downloads/wlx_SQLiteViewer_1.8.zip

#25:  Author: ProgMan13 PostPosted: Tue Nov 19, 2013 01:48
    —
Версия 1.8.2:
* обновлён движок SQLite;
* плагин перекомпилирован в Delphi XE4 для улучшения стабильности 64-битной версии;
+ информация о таблице БД в формате SQL;
* ошибочная сортировка после клика по заголовку таблицы правой кнопкой, а затем в любом её месте;
* разные исправления.

http://progman13.totalcmd.net/downloads/wlx_SQLiteViewer_1.8.2.zip

#26:  Author: Alextp PostPosted: Thu Nov 28, 2013 04:59
    —
ProgMan
Если сделаешь открытый сорс, то в случае чего я смогу перекомпилировать. А так мало ли что. Пропадет исходник и - тютю

#27:  Author: mrmerak PostPosted: Thu Jan 02, 2014 16:17
    —
ProgMan13
можешь в выпадающем списке добавить [2/3] table_name ?
Т.е. какая сейчас открыта и сколько всего их в списке

#28:  Author: wOxxOm PostPosted: Sat May 03, 2014 18:02
    —

P.S. Спасибо за обалденный плагин!

#29:  Author: ProgMan13 PostPosted: Mon May 05, 2014 11:31
    —
wOxxOm, mrmerak
1. Перегружать список лишней информацией я не хочу. И сейчас ровно эти строки используются для всех запросов. Получение кол-ва записей для каждой таблицы занимает время.

wOxxOm
2, 3. Вполне может быть.
4. При текущей реализации это невозможно.
5, 6. Это не так просто.

#30:  Author: AKRLocation: Russian PostPosted: Thu Feb 26, 2015 13:09
    —
Нельзя ли сортировать список таблиц по имени?
А то искать очень трудно когда их с три десятка.

#31:  Author: ProgMan13 PostPosted: Fri Feb 27, 2015 23:11
    —
AKR
Добавил в настройки

#32:  Author: AKRLocation: Russian PostPosted: Mon Mar 02, 2015 16:53
    —
Отлично. Спасибо. Но почему-то по умолчанию выключено. Логично бы включено если было. Не представляю варианта когда несортированный список удобнее.

#33: Увеличение длины текстового поля Author: Ern PostPosted: Mon Jan 04, 2016 10:51
    —
Я полный чайник в SQL Lite, поэтому прошу не бить сильно ногами Very Happy - можно ли сделать длину параметра BlobAsTextLimit больше 2000 (есть база SQL Lite, записей не так много - до 500, но длина текстового поля доходит до 20 000 ) ? Насколько это критично для работы плагина или очень долго будет загружать?

#34:  Author: ProgMan13 PostPosted: Wed Jan 06, 2016 00:07
    —
Ern
Посмотрю что можно сделать.

#35:  Author: reslear PostPosted: Fri Nov 25, 2016 17:27
    —
ProgMan13 wrote:

Привет, очень полезное и классное расширение спасибо!)

Есть проблема, при виде таблицы:
Code:
id INTEGER PRIMARY KEY AUTOINCREMENT,
uid INTEGER NOT NULL,
date DATE NOT NULL,
url VARCHAR(100),
ip VARCHAR(100)


Всё отображается хорошо кроме поля с типом DATE, в нём просто вместо даты выводиться 0. Исправьте пожалуйста,Спасибо Smile

#36:  Author: ProgMan13 PostPosted: Fri Nov 25, 2016 23:47
    —
reslear
Пример?

#37:  Author: reslear PostPosted: Sat Nov 26, 2016 02:48
    —
ProgMan13
Всё нормально, обновил версию, новая оказывается поддерживает DATETIME
мой пост выше можно удалить
Smile

#38:  Author: demo$ PostPosted: Mon Jul 17, 2017 07:54
    —
Окно просмотра обрезает текстовые поля до 256 символов. Это можно исправить?

#39:  Author: imig73Location: г. Иркутск PostPosted: Mon Jul 17, 2017 21:01
    —
demo$
Так ведь в настройках плагина можно задать лимит длины строки:

#40:  Author: demo$ PostPosted: Mon Jul 17, 2017 22:36
    —
imig73 wrote:
demo$
Так ведь в настройках плагина можно задать лимит длины строки:

Простите, не сразу разобрался, как добраться до настроек плагина.
Тем не менее, даже здесь лимит ограничен 2000 символами. Но это уже лучше, благодарю!

#41:  Author: ProgMan13 PostPosted: Sat Jul 22, 2017 06:23
    —
demo$
Теперь можно увеличить количество символов. При этом некоторые базы могут не открываться из-за нехватки памяти.

#42:  Author: demo$ PostPosted: Sun Jul 23, 2017 09:19
    —
ProgMan13 wrote:
demo$
Теперь можно увеличить количество символов. При этом некоторые базы могут не открываться из-за нехватки памяти.


Благодарю!

#43:  Author: dev/null PostPosted: Fri Jul 28, 2017 01:03
    —
А можно полюбопытствовать, какой компонент используется для работы с БД?

#44:  Author: ProgMan13 PostPosted: Sat Jul 29, 2017 14:40
    —
dev/null
Для самой работы с базами - DISQLite3, остальные компоненты стандартные.

#45:  Author: ProgMan13 PostPosted: Fri Nov 03, 2017 16:30
    —
Версия 2.0:
* полностью изменено поведение отображения длинных строк и blob-полей в режиме текста;
* множество изменений в отображении табличного представления;
* при FixDateTimeField=1 дополнительно делается попытка определить дату/время для полей типа DATE и формата REAL;
+ сортировка по нескольким полям при щелчке по заголовкам с зажатой клавишей Ctrl (снять сортировку можно так же с зажатой клавишей Ctrl);
+ запись может отображаться в несколько строк;
+ панель с предпросмотром текста/изображений выбранной ячейки (текст дополнительно проверяется на кодировку UTF8);
+ простой диалог поиска по Ctrl-F (далее можно искать по F3);
+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
CreateFakeFTS= - создаёт токены FTS и ICU при открытии базы (только для подавления ошибок в соответствующих таблицах, может приводить к другим ошибкам!);
* разные исправления.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.0.zip

#46:  Author: ProgMan13 PostPosted: Sun Mar 11, 2018 17:56
    —
Версия 2.1:
* сортировка с зажатой клавишей Ctrl сейчас происходит после отпускания кнопки Ctrl;
+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
GetAllRecordsCountForce=0 - принудительно подсчитывать количество записей в таблице;
CheckFieldIsURL=0 - проверять поля на URL (1-я запись, http:// или https://) при загрузке таблицы;
PreviewRTF=0 - предпросмотр RTF;
PreviewJPEGScale=1 - предпочитаемый размер JPEG при предпросмотре для ускорения загрузки (0 - как есть, 1 - размер экрана, 2 - половина экрана, 3 - четверть экрана, 5 - 1/8 экрана);
...
* многочисленные исправления.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.1.zip


Last edited by ProgMan13 on Sun Mar 11, 2018 19:44; edited 1 time in total

#47:  Author: ProgMan13 PostPosted: Fri Mar 16, 2018 19:47
    —
Версия 2.1.1:
* изменения в отрисовке чётных и нечётных строк (в Настройках);
* в окне просмотра записи Memo заменены на RichEdit;
+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
OldGetData=0 - получение текстовых данных из таблиц как в версиях 1.x (есть в Настройках);
DrawNullText=0 - текст (null) в пустых ячейках (есть в Настройках);
GridColor= - цвет грида (по умолчанию Цвет окна);
...
* разные исправления.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.1.1.zip

#48:  Author: ProgMan13 PostPosted: Mon Mar 19, 2018 23:28
    —
В основном исправления в отрисовке верхней и нижней панелей при включенной Классической теме Windows, так что отрисовка могла поломаться.
Теперь по умолчанию системные таблицы в список не добавляются, но AddMasterTable при отключенной опции SkipSystemTables также добавит в список таблицу sqlite_master.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.1.1.1.zip

#49:  Author: ProgMan13 PostPosted: Mon Apr 02, 2018 20:20
    —
Бета-версия с обновлённой версией библиотеки sqlite3 (3.22.0).
+ подсветка синтаксиса SQL на вкладке окна Table Info (не факт, что будет в релизе);
* базы данных сейчас открываются в реальном режиме "только для чтения";
+ простой экспорт в csv, xlsx, html, rtf;
+ просмотр следующей/предыдущей записи в окне Record View.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.2_Beta.zip

#50:  Author: ParazitLocation: Россия PostPosted: Tue Apr 24, 2018 19:59
    —
ProgMan13, так редактировать и создавать свои базы, он пока не может?

#51:  Author: ProgMan13 PostPosted: Thu Apr 26, 2018 22:34
    —
Parazit
Редактирование вообще не планировалось.

#52:  Author: ProgMan13 PostPosted: Mon Apr 30, 2018 20:55
    —
Версия 2.4 Beta.

Основной упор в этой версии на удалении записей.
Показ повреждённых баз (таблиц) пробовал просто - файл поделил пополам.

* исправления и улучшения при удалении записей;
+ фильтрация в колонке по значению ячейки по Alt-Click, снять - Alt-Click по такому же значению в любой колонке или из меню (не совместимо с фильтром панели поиска);
+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
AllowColumnFilter=1 - разрешить фильтрацию в колонке по Alt-Click;
ExportCsvCommaSeparated=0 - при экспорте в CSV разделитель запятая;
ExportCsvTitle=1 - экспортировать заголовки в CSV;
ProcessMalformedTables=0 - открывать повреждённые таблицы (может приводить к ошибкам!);
OpenEmptyDatabase=0 - открывать базы без таблиц (только при SkipSystemTables=0 и AddMasterTable=1);
* разные исправления.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.4_Beta.zip

#53:  Author: ProgMan13 PostPosted: Thu May 03, 2018 16:50
    —
Исправление ошибок.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.4.1_Beta.zip

#54:  Author: ProgMan13 PostPosted: Fri May 18, 2018 16:02
    —
Версия 2.4.2 Beta:

* изменения в извлечении данных из некоторых полей, в частности BLOB;

+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
* CheckFieldIsURL=0 - теперь количество записей (0-20), поля которых проверяются на URL (http:// или https://) при загрузке таблицы;
* FixDateTimeField=1 - попытка правильно показывать поля DATETIME, DATE, TIME, TIMESTAMP: 2 - дополнительные проверки, 3 - как текст (по умолчанию 1);
* разные исправления.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.4.2_Beta.zip

#55:  Author: ProgMan13 PostPosted: Tue May 22, 2018 19:48
    —
Версия 2.4.3 Beta:

+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
EmptyDefinedType=0 - тип данных поля, для которого тип данных не установлен ("пустой"): 0 - автоматически, 1 - текст, 2 - Blob (есть в Настройках);
PreviewTextBlobConvert=0 - дополнительные преобразования данных при конвертации из Blob в текст (есть в Настройках);
PreviewTextBlobConvertMaxLen= - максимальный размер данных для конвертации (-1 - без ограничений) (есть в Настройках);
* разные исправления.

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.4.3_Beta.zip

#56:  Author: jobber90 PostPosted: Sun May 27, 2018 10:23
    —
Подскажите как просматривать SQLite файлы без расширения...

Нужно дописать detect-строку в SQLiteViewer.ini ?
Попробовал дописать DetectString="SQLite", но в TotalCommander по F3 всё равно открывает базу как текст...

P.S. sqlite-файлы без расширения есть в папке профиля браузера, например

#57:  Author: ProgMan13 PostPosted: Sun May 27, 2018 14:49
    —
jobber90
Пример detect-строки есть в Readme плагина. Её нужно менять в ini Тотала. Можно воспользоваться программой TC Plugins Manager.

#58:  Author: imig73Location: г. Иркутск PostPosted: Wed Sep 25, 2019 16:43
    —
ProgMan13
Пример. Файл из профиля Opera Blink "QuotaManager" с заголовком SQLite format 3 открывается плагином, файл "Web Data" с аналогичным заголовком открывается как текст. Detect-строка взята из Readme плагина. Таких несоответствий много и хотелось бы понять почему так и от чего это зависит? Win10x64, TCx64 и 32-bit та же ситуация.

#59:  Author: ProgMan13 PostPosted: Thu Sep 26, 2019 01:47
    —
imig73
Если Opera открыта - так и должно быть. Там ошибка при открытии - "database is locked".

#60:  Author: imig73Location: г. Иркутск PostPosted: Thu Sep 26, 2019 04:16
    —
ProgMan13
Не думал что это тоже надо расписывать. Конечно браузер закрыт, так же удалось выяснить что если к примеру файлу без расширения "Web Data" принудительно присвоить расширение DB, то он откроется плагином как ни в чём не бывало. Без расширения, плагин не понимает что этот файл SQLite format 3 и он открывается просто как текст, т. е. detect-строка не работает

#61:  Author: Skif_off PostPosted: Fri Sep 27, 2019 02:22
    —
imig73 wrote:
Без расширения, плагин не понимает что этот файл SQLite format 3 и он открывается просто как текст, т. е. detect-строка не работает

Ну так заставьте: первые 16 байт базы SQLite 3 - это "SQLite format 3.".
Отсюда слейте LS-Plugin Guide, откройте описание ListGetDetectString, там описана фича с чтением любого из первых 8192 байт файла и есть пример ("RIFF" и прочее).

#62:  Author: ParazitLocation: Россия PostPosted: Tue Dec 24, 2019 05:24
    —
ProgMan13, а что вы сделали с плагином?
Теперь ни одна база данных не открывается.
Я удалил рабочий плагин, поставил эту новую версию,
и теперь ни одна база данных не открывается.

#63:  Author: imig73Location: г. Иркутск PostPosted: Tue Dec 24, 2019 05:39
    —
Подтверждаю, версия 2.7 beta не открывает то что открывала 2.6

#64:  Author: ProgMan13 PostPosted: Fri Jan 17, 2020 21:35
    —
Parazit, imig73
Всё, что плагин открывал - открывает. В 2.7.1 Beta стал лучше отображать содержимое некоторых таблиц.

#65:  Author: ParazitLocation: Россия PostPosted: Sat Jan 18, 2020 02:04
    —
ProgMan13, спасибо, перекачал. Прекрасно работает.

#66:  Author: imig73Location: г. Иркутск PostPosted: Sat Jan 18, 2020 08:12
    —
ProgMan13
Да, спасибо у меня тоже всё работает.

#67:  Author: ProgMan13 PostPosted: Mon Feb 24, 2020 13:52
    —
imig73
Новая версия может открывать заблокированные файлы, сетевые пути не тестировались:
+ SQLiteViewer.ini для ручной настройки:
[SQLiteViewer]
TryOpenLockedAndReadOnly=0 - пытаться открыть заблокированные базы (ошибки SQLite 5 и 14) в режиме только для чтения (https://sqlite.org/uri.html#uriimmutable);

http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.8.2.7z.001
http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.8.2.7z.002
http://progman13.wincmd.ru/downloads/wlx_SQLiteViewer_2.8.2.7z.003

#68:  Author: imig73Location: г. Иркутск PostPosted: Mon Feb 24, 2020 17:25
    —
ProgMan13
Спасибо, ключ TryOpenLockedAndReadOnly=1 так же работает. Пробовал Login Data из Opera 68 при загруженном браузере, всё без проблем. Прошлая версия открывала как текст.

#69:  Author: Viggen PostPosted: Mon Mar 15, 2021 15:26
    —
ProgMan13
в версии 2.11 проблема с базами рабочих копий SVN.
неправильно показывает поле local_relpath таблицы NODES.
показывает всегда 0, а в TableInfo:Representation = LargeInt, хотя для других текстовых полей там WideMemo.

PS: в версии 2.6.1 показывает правильно.

#70:  Author: ProgMan13 PostPosted: Tue Mar 16, 2021 01:20
    —
Viggen
Само поле какой тип имеет?

#71:  Author: Viggen PostPosted: Tue Mar 16, 2021 16:40
    —
ProgMan13
TEXT
CREATE TABLE NODES (..., local_relpath TEXT NOT NULL,..., PRIMARY KEY (wc_id, local_relpath, op_depth) )

#72:  Author: ProgMan13 PostPosted: Tue Mar 16, 2021 19:37
    —
Viggen
Хотелось бы увидеть файл. Хватит таблицы с одной записью.

#73:  Author: Viggen PostPosted: Tue Mar 16, 2021 19:58
    —
ProgMan13
Code:
svn co https://github.com/npm/ini.git/trunk

получится файл [current path]/trunk/.svn/wc.db

-
поигрался еще.
Code:

BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "PRISTINE" ( "checksum"   TEXT NOT NULL, "compression"   INTEGER, "size"   INTEGER NOT NULL, "refcount"   INTEGER NOT NULL, "md5_checksum"   TEXT NOT NULL, PRIMARY KEY("checksum"));
INSERT INTO "PRISTINE" ("checksum","compression","size","refcount","md5_checksum") VALUES ('$sha1$3aa2bb02572754b23912697e752f5d4fe24d8022',NULL,5107,1,'$md5 $9d0b8e92991d91281d0f01d492747510');
COMMIT;

поле checksum не показывается. но если убрать PRIMARY KEY("checksum") то все нормально.
похоже проблема с "PRIMARY KEY"

#74:  Author: ProgMan13 PostPosted: Wed Mar 17, 2021 19:36
    —
Viggen
Должно быть исправлено в версии 2.11.1.

#75:  Author: Viggen PostPosted: Thu Mar 18, 2021 13:05
    —
ProgMan13
работает. Спасибо Smile

#76:  Author: Destiny PostPosted: Fri Oct 29, 2021 21:01
    —
ProgMan13
А отчего после использования плагина над файлом рядом возникают 2 файла с тем же именем (и даже с расширением!), но с окончанием "-shm" и "-wal". Явно они нужны были для работоспособности открытия этого формата, но после закрытия плагина им не место на диске. Отчего они не автоудаляются?

#77:  Author: little-brother PostPosted: Sat Oct 30, 2021 02:12
    —
Это файлы журнала (изменений в базе), которые используются при работе базы данных, а также для восстановления после внезапного завершения работы приложения посредине транзакции. У вас база данных работает в режиме WAL, т.е. с возможностью, когда можно писать и читать базу в нескольких потоков параллельно (как в больших СУБД).
Переведя базу в режим по умолчанию командой
Code:
pragma journal_mode = delete

после прекращения работы файл журнала будет удален автоматически.

#78:  Author: Destiny PostPosted: Sat Oct 30, 2021 12:50
    —
little-brother wrote:
Переведя базу в режим по умолчанию командой
Код:
pragma journal_mode = delete

после прекращения работы файл журнала будет удален автоматически.

Приветствую! где-то мы уже пересекались)))
По ответу: если бы это единоразово где-то выставлялось галочкой в общем Setup'e - было бы очень приятно и полезно. А пока что я это вижу как действие над каждой открываемой базой... Да мне проще будет эти файлы удалять, чем эту команду каждый раз вводить.

#79:  Author: little-brother PostPosted: Sat Oct 30, 2021 15:14
    —
Дело в том, что данная pragma хранится в базе, в отличии от многих других, т.е. плагин конечно может подключиться к базе, перевести ее в режим delete, а потом при отключении в режим wal, но это не очень хорошо, т.к. при этом меняется файл базы.
Удалять файлы плагин то ж не должен, т.к. если у вас они были до этого, то возможно в них содержится информация, которая не была перенесена в основной файл базы.

Посмотрел свой плагин - он не создает данные файлы. Похоже SQLiteViewer открывает базу в режиме не только чтение (SQLITE_OPEN_READONLY), а в режиме по умолчанию (чтение-запись), потому файлы журнала и создаются.

#80:  Author: Destiny PostPosted: Sat Oct 30, 2021 23:02
    —
little-brother wrote:
Посмотрел свой плагин - он не создает данные файлы

Смотрел и ваш - те же файлы так же рядом((((
но т.к. в этом больше нужных операций и настроек , то выбрал покамест его. Но вот ток проблему бы с этими файлами решить кардинально.

#81:  Author: ProgMan13 PostPosted: Mon Nov 01, 2021 01:28
    —
Плагин по умолчанию открывает файлы в режиме только для чтения (SQLITE_OPEN_READONLY). Раньше просто выполнялась "'pragma query_only=true". Это чтобы ничего случайно не изменить. Но во втором случае можно выполнять всякие (в том числе "вредные") прагмы.
Базы "в режиме" WAL всегда должны создавать два файла журнала. Но при открытии только для чтения файлы создаются, но не удаляются.

Для изменения режима открытия баз в ini плагина нужно дописать
DatabaseReadOnly=0



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


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

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group