Polygon - работа с файлами SQLite3

Здесь можно обсудить ваш любимый плагин.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Polygon - работа с файлами SQLite3

Post by HaRT »

Latest post of the previous page:

Shmuel wrote: Thu 06 Sep, 2018 20:14 возвращает вышеприведенную ошибку, если не получается
Но остаётся вопрос: можем ли мы различить невалидную и залоченную базу. Казалось бы, невалидная не должна даже читаться, а залоченность должно быть возможно как-то проверить…
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Polygon - работа с файлами SQLite3

Post by Shmuel »

Насчёт залоченности - это надо экспериментировать. Это должен быть редкий случай, так как нормально SQLite допускает одновременное открытие и работу с базой нескольких пользователей.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Polygon - работа с файлами SQLite3

Post by HaRT »

Shmuel wrote: Thu 06 Sep, 2018 20:28 должен быть редкий случай
В самом деле, не знаю, как мне удалось напороться на ту ошибку. Наверно, и впрямь не слишком практически значимая ситуация.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Polygon - работа с файлами SQLite3

Post by Shmuel »

Сейчас искусственно залочил файл и попытался открыть плагином. На сей раз SQLite вернула код ошибки и сообщение, впрочем, не более информативное, чем было:

Code: Select all

╔══════════════════════════════════╗
║  1│ 14                           ║
║  2│ unable to open database file ║
╚══════════ 2 arguments ═══════════╝
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Polygon - работа с файлами SQLite3

Post by Shmuel »

А вот реакция DB Browser на залоченный (валидный!) файл:
Clipboard01.jpg
Clipboard01.jpg (7.57 KiB) Viewed 11231 times
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Polygon - работа с файлами SQLite3

Post by DrKnS »

Shmuel wrote: Thu 06 Sep, 2018 21:07не более информативное, чем было
В sqlite3_system_errno может быть что-то типа ERROR_SHARING_VIOLATION.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Polygon - работа с файлами SQLite3

Post by Shmuel »

HaRT wrote: Tue 04 Sep, 2018 16:44 Так ведь хочется дамп не всей базы, а только выбранных в панели таблиц.
На данный момент ещё не определился, буду ли это делать, но sqlite3.exe позволяет делать дамп отдельных таблиц тоже.
Например: sqlite3 panelmodes.db ".dump table_values" > 1.sql
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Polygon - работа с файлами SQLite3

Post by IgorZ »

Давно уже хотел спросить, но раньше всё как-то руки не доходили. Не то, чтоб это было критично, но интересно: почему у Polygon стоит флаг PF_DISABLEPANELS?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Polygon - работа с файлами SQLite3

Post by Shmuel »

В настройках плагина есть [x] Add to plugins menu.
Last edited by Shmuel on Fri 14 Sep, 2018 05:58, edited 1 time in total.
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Polygon - работа с файлами SQLite3

Post by 2useven10 »

Имя флага не слишком помогает понять что он делает.
PF_DISABLEPANELSMENU было бы более очевидно (PF_EDITOR PF_VIEWER PF_DIALOG -> PF_ENABLExxxMENU).
Last edited by 2useven10 on Fri 14 Sep, 2018 08:22, edited 1 time in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Polygon - работа с файлами SQLite3

Post by IgorZ »

Shmuel wrote: Fri 14 Sep, 2018 05:58 В настройках плагина есть [x] Add to plugins menu.
"Слона-то я и не заметил..." (с)
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Polygon - работа с файлами SQLite3

Post by Shmuel »

HaRT wrote: Tue 04 Sep, 2018 16:02 Пара пожеланий:
1. Формат SQL при экспорте таблицы — т.е. по сути SQL-дамп таблицы (т.е. код, который можно использовать, чтобы воссоздать таблицу с её нынешними данными). Некоторые реляционные СУБД предоставляют такую возможность из коробки.
Посмотрел я реализацию дампа в коде sqlite3.exe - хотел использовать, чтобы не изобретать велосипед. Но эта реализация тянет чуть ли не на 1000 строк кода, что никак не укладывается в мои возможности по времени.

Тогда возникла такая идея: юзер выбирает таблицы для дампа и имя выходного файла, а плагин формирует комстроку для sqlite3.exe и запускает его с этой комстрокой. Если sqlite3.exe не найден, тогда, конечно, пролетаем.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Polygon - работа с файлами SQLite3

Post by buniak_a_h »

1. sqlite3.dll есть в наличии (без неё ошибка возникала на этапе загрузки макросов). Это я для предотвращения ответов типа «не загружена sqlite3.dll».
2. При попытке "зайти" в базу получаю:

Code: Select all

╔══════════════════════════════════════════════════ Error ══════════════════════════════════════════════════╗
║ E:\Far.Test\Plugins\polygon\polygon_e-x64.dll:                                                            ║
║ [string "<boot"]:63: error loading module 'lsqlite3' from file 'E:\Far.Test\Plugins\polygon\lsqlite3.dl': ║
║    Не найдена указанная процедура.                                                                        ║
║                                                                                                           ║
║ stack traceback:                                                                                          ║
║    [C]: in function 'error'                                                                               ║
║    [string "<boot"]:63: in function 'n'                                                                   ║
║    [string "<boot"]:71: in main chunk                                                                     ║
╟───────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║                                                  { OK }                                                   ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════╝
, хотя указанный файл (lsqlite3.dl) в указанной папке имеется.
DBEdit.lua работает… Плагин SQLite database editor от Artem Senichev, Vladimir Surguchev - тоже работает.
Чего полигону не хватает?
Last edited by buniak_a_h on Mon 07 Jun, 2021 21:48, edited 2 times in total.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Polygon - работа с файлами SQLite3

Post by Shmuel »

buniak_a_h wrote: Mon 07 Jun, 2021 21:44 Чего полигону не хватает?
Не знаю. Только что проверил версию 1.4.1 на чистом профиле последнего Фара - работает.

P.S. Судя по сообщению ошибки, возможно требуется более новая версия sqlite.dll.
Сейчас попробовал старую 3.8.6 - получил ошибку, подобную вашей.
sqlite3.dll-x64.7z
(675.97 KiB) Downloaded 130 times
Last edited by Shmuel on Mon 07 Jun, 2021 22:17, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Polygon - работа с файлами SQLite3

Post by buniak_a_h »

Shmuel, ура!!! Заработало…
Zyx
Posts: 46
Joined: Wed 08 Apr, 2009 06:20
Has thanked: 4 times

Polygon - работа с файлами SQLite3

Post by Zyx »

Добрый день.
Far Manager, version 3.0.5843.0 x86
Polygon 1.4.3.

Существует проблема с блокировкой файла базы после работы с ней плагина. После выхода из базы, файл остается заблокирован Фаром.
Возможно ли исправить данную проблему?
Post Reply

Return to “Обсуждение плагинов”