Версия LibaBook: 3.010.10<br>Версия Windows: Win10 Pro x64<br>Текст сообщения в окне с ошибкой (если появлялось): Ошибка конвертирования структуры файла firebird v2 -> v3! :Не удалось скопировать [C:\Users\Warlock\Desktop\Мои Книги в.3\Мои книги_db\main.lbbk2] в [C:\LibaBook3\tmp\libabook3_convert\main.lbbk2]!<br><br>Укажите шаги для воспроизведения ошибки:<br>1) Запустить LibaBook.<br>2) Меню -> Мастер конвертирования -> указываю путь к старой БД (к файлу .lbbk2) -> указываю, где создать новую БД и название БД<br>3) Нажимаю кнопку "Создать копию старой базы в новом формате", появляется окно "Подождите", и через секунду-две - указанное выше сообщение.
Если у вас такая же ошибка, напишите пожалуйста в комметрарии версию LibaBook и Windows.
Версия LibaBook: 3.010.10 Версия Windows: Win10 Pro x64 Текст сообщения в окне с ошибкой (если появлялось): Ошибка конвертирования структуры файла firebird v2 -> v3! :Не удалось скопировать [C:\Users\Warlock\Desktop\Мои Книги в.3\Мои книги_db\main.lbbk2] в [C:\LibaBook3\tmp\libabook3_convert\main.lbbk2]!
Укажите шаги для воспроизведения ошибки: 1) Запустить LibaBook. 2) Меню -> Мастер конвертирования -> указываю путь к старой БД (к файлу .lbbk2) -> указываю, где создать новую БД и название БД 3) Нажимаю кнопку "Создать копию старой базы в новом формате", появляется окно "Подождите", и через секунду-две - указанное выше сообщение.
На тестовом компьютере, ошибка копирования появлялась при включенном антивирусе avast, при этом им выводилось сообщение в котором можно было подтвердить действие удаления, хотя на самом деле создаются новые файлы. После подтверждения и повторной попытке конвертация успешно прошла. Но после установки LibaBook3 заново, проблема повторилась, причём после подтверждения действия в avast ошибка осталась и повторялась постоянно, а avast никаких сообщений больше не выводил. После отключения экранов аваста всё заработало и конвертация прошла успешно.
Рекомендация:
Попробуйте отключить свой антивирус на время выполнения конвертации.
Так же, чтобы убедиться, что проблема не конкретно в вашей БД, создайте в LibaBook2 любую демонстрационную БД, и проверьте будет ли ошибка при её конвертации в v3.
1. Антивирус тут точно не при чем, поскольку на компьютере без него (но с той же ОС) та же ошибка. 2. При копировании вручную файла та же ошибка. Судя по всему - при конвертировании LB3 очищает папку LibaBook3\tmp\libabook3_convert поскольку я пробовал и только файл main.lbbk2 туда копировать, и полностью БД в старом формате - ошибка все равно вылетает, а на выходе - пустая папка.
по поводу копирования - да, при копировании вручную файл\файлы успешно копируются, запускаю конвертацию, вылазит ошибка "конвертирования структуры файла firebird v2 -> v3!", папка LibaBook3\tmp пустеет. Я сначала тоже подумал, что дело в доступе, но LibaBook3 заупскается от администратора. Но когда, как вы писали, создал демонстационную БД в LibaBook2 и она вполне себе сконвертировалась - как-то сомнение берет, что дело в доступе.
Сейчас ради интереса сделал обычную (не демо) БД, набил десятком книг - сконвертировалась путем. Отсюда вопрос -как можно проверить старую БД на ошибки и\или их исправить???
Ошибка возникает в ф-ции копирования, и до преобразования структуры дело не доходит... Проблема видимо всё-таки с доступом (может какие-то специфические права на какую-то папку в пути "C:\Users\Warlock\Desktop\Мои Книги в.3\Мои книги_db\") или ошибкой жёсткого диска...
Попробуйте в LibaBook2 создать резервную копию проблемной БД. Восстановить её в новую папку и потом сконвертировать в v3.
Похоже разобрался, в чем дело. Проблема не в правах, антивирусе или жестком диске (тут проверял на 2х ПК и ноуте, причем на ноуте Win7 стоит, а не Win10, и везде одна и та же ошибка).
Во второй версии есть такой баг (не знаю, писали о нем или нет) - когда делаешь резервную копию БД, то в конце процесса создания копии программа говорит "копия создана, открыть ее?" И если нажать "открыть", то можно получить ошибку
I/O error during "CreateFile (open)" operation for file "путь к файлу main.lbbk2 резервной БД"
Error while trying to open file
Не удается найти указанный файл
и соответственно файл не открывается. Такая ошибка появляется, если имя файла lbbk2 исходной БД отличается от main.lbbk2 - при резервном копировании имя файла lbbk2 копируется от исходной БД, а потому файла main.lbbk2 программа не находит.
И, судя по всему, этот баг пришел и в третью версию, потому что как только я переименовал файл lbbk2 проблемной БД с Мои книги.lbbk2 на main.lbbk2 - база чудесным образом сконвертировалась.
Спасибо большое за ваши советы - без них не факт, что я бы вспомнил про баг с резервной копией.
Вам тоже большое спасибо за подробное описание проблемы и найденного решения!
Что касается "бага", то это не совсем баг, а просто программа так устроена)
Возможно 2 варианта:
1. По аналогии с v1, где БД хранилась в одном файле с любым именем и расширением lbbk, вы вручную переименовали main.lbbk на своё название в БД после конвертирования из v1 в v2. Но, в v2 - БД это уже не только один файл lbbk2, БД - это вся папка с именем, которое задаёт пользователь (и концовкой _db), и с фиксированной структурой внутри, в которой главный файл БД - всегда имеет название main.lbbk2 (хотя возможность открыть lbbk2 с другим именем осталась - по факту в процессе использования программы, рано или поздно это приведёт к ошибкам, как например при резервном копировании о чём вы писали выше)
2. Если вы самостоятельно вручную не переименовывали main.lbbk2 в другое имя, то возможно, это действительно был баг в одной из ранних версий v2 (возможно ещё бетта), когда при конвертировании имя файла lbbk принудительно не изменялось на main.lbbk2 Я честно говоря, тоже особо не помню этот момент (лень искать в логах), но вполне возможно, что благодаря вам (или кому-то ещё) этот баг был действительно исправен в программе, но в вашей БД имя осталось "баговым" отличающимся от main.lbbk2 (ведь кроме ошибки при открытии БД сразу после конвертации других проблем особо не наблюдалось... пока не были использованы соответствующие ф-ции)
Сейчас если БД в v1 имеет название отличное от main.lbbk, то оно корректно конвертируется в v2 с именем main.lbbk2, и соответственно далее при конвертировании в v3 тоже проблем нет (специально протестировал).
В моем случае это скорее второй вариант - я начал пользоваться LB со второй версии. Примерно - в сентябре 2020го, мб чуть раньше. В общем еще раз спасибо за помощь и подсказки.
Вообще с запуском от администратора и от пользователя в винде много проблем возникает, возможно причина как раз в этом... Если БД создавалась под админом, то она должна всегда открываться под админом, иначе виндовс создаёт несколько одинаковых файлов, например main.lbbk2 доступных по одинаковому пути, но с разным содержимым зависящим от прав пользователя...
По идее совет с созданием резервной копии здесь должен помочь, но попробуйте вначале все манипуляции и в LibaBook2 и LibaBook3 выполнить без запуска под админом, если не получится, то те же манипуляции с запуском от админа.
Данная проблема у некоторых возникает из-за того, что БД создавалась не тем пользователем, который пытается выполнить конвертирование и прав доступа к папке БД нет.
Для проверки наличия прав доступа, попробуйте скопировать вручную файл main.lbbk2 из папки БД которую хотите конвертировать, например, в корень на диск C:.
Если не получится, то запустите LibaBook от имени Администратора Windows и попробуйте выполнить конвертирование.