Page 3 of 4

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

Posted: Thu 06 Sep, 2018 20:49
by HaRT

Latest post of the previous page:

Shmuel wrote: Thu 06 Sep, 2018 20:28 должен быть редкий случай
В самом деле, не знаю, как мне удалось напороться на ту ошибку. Наверно, и впрямь не слишком практически значимая ситуация.

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

Posted: Thu 06 Sep, 2018 21:07
by Shmuel
Сейчас искусственно залочил файл и попытался открыть плагином. На сей раз SQLite вернула код ошибки и сообщение, впрочем, не более информативное, чем было:

Code: Select all

╔══════════════════════════════════╗
║  1│ 14                           ║
║  2│ unable to open database file ║
╚══════════ 2 arguments ═══════════╝

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

Posted: Thu 06 Sep, 2018 21:13
by Shmuel
А вот реакция DB Browser на залоченный (валидный!) файл:
Clipboard01.jpg
Clipboard01.jpg (7.57 KiB) Viewed 11294 times

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

Posted: Fri 07 Sep, 2018 01:05
by DrKnS
Shmuel wrote: Thu 06 Sep, 2018 21:07не более информативное, чем было
В sqlite3_system_errno может быть что-то типа ERROR_SHARING_VIOLATION.

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

Posted: Sat 08 Sep, 2018 18:05
by Shmuel
HaRT wrote: Tue 04 Sep, 2018 16:44 Так ведь хочется дамп не всей базы, а только выбранных в панели таблиц.
На данный момент ещё не определился, буду ли это делать, но sqlite3.exe позволяет делать дамп отдельных таблиц тоже.
Например: sqlite3 panelmodes.db ".dump table_values" > 1.sql

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

Posted: Fri 14 Sep, 2018 05:27
by IgorZ
Давно уже хотел спросить, но раньше всё как-то руки не доходили. Не то, чтоб это было критично, но интересно: почему у Polygon стоит флаг PF_DISABLEPANELS?

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

Posted: Fri 14 Sep, 2018 05:58
by Shmuel
В настройках плагина есть [x] Add to plugins menu.

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

Posted: Fri 14 Sep, 2018 08:19
by 2useven10
Имя флага не слишком помогает понять что он делает.
PF_DISABLEPANELSMENU было бы более очевидно (PF_EDITOR PF_VIEWER PF_DIALOG -> PF_ENABLExxxMENU).

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

Posted: Fri 14 Sep, 2018 10:48
by IgorZ
Shmuel wrote: Fri 14 Sep, 2018 05:58 В настройках плагина есть [x] Add to plugins menu.
"Слона-то я и не заметил..." (с)

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

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

Тогда возникла такая идея: юзер выбирает таблицы для дампа и имя выходного файла, а плагин формирует комстроку для sqlite3.exe и запускает его с этой комстрокой. Если sqlite3.exe не найден, тогда, конечно, пролетаем.

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

Posted: Mon 07 Jun, 2021 21:44
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 - тоже работает.
Чего полигону не хватает?

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

Posted: Mon 07 Jun, 2021 22:02
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 131 times

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

Posted: Mon 07 Jun, 2021 23:42
by buniak_a_h
Shmuel, ура!!! Заработало…

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

Posted: Mon 05 Jul, 2021 09:26
by Zyx
Добрый день.
Far Manager, version 3.0.5843.0 x86
Polygon 1.4.3.

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

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

Posted: Mon 05 Jul, 2021 13:06
by Shmuel
Zyx wrote: Mon 05 Jul, 2021 09:26 Существует проблема с блокировкой файла базы после работы с ней плагина.
Мне известен только один сценарий такой блокировки:
- если помимо Polygon присутствует ещё и плагин SQLiteDB
- если при открытии файла появляется диалог выбора плагина, и выбирается Polygon

В этом случае файл остаётся залоченым плагином SQLiteDB (это его баг).
Если у вас другой сценарий, опишите, пожалуйста, подробнее.

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

Posted: Mon 05 Jul, 2021 14:25
by Zyx
Да, все именно так. Не подумал о взаимовлиянии плагинов. Спасибо.