Наконец-то! Класс парсера полностью готов!
Ну вот, долгожданное событие наконец сбылось! Готов наконец этот нескончаемый класс парсера. Полностью готов. Сколько же было возни. По ощущениям месяц прошел. Ну или может недели три как минимум. Но это того стоило. Потому как в парсер SQLite SQL-запросов были внесены существенные улучшения. Улучшена логика и структура классов Statement, хранящих данные SQL-запросов. Добавлены не учтенные мной раньше возможности синтаксиса SQLite. Ну, в общем, как обычно, при каждом моем переделывании что-то улучшается и дополняется. Так, кажется, можно было бы продолжать целую вечность. Но вечности у меня нету. И время летит как не знаю что. Да и времени в общем-то мало. Так что нужно поторапливаться с переделкой программы. Поэтому будет реализовывать только актуальные функции, отбросив лишнюю мишуру и те функции, без которых пока можно обойтись.
А что дальше на очереди по плану? А дальше - реализовать надо классы уже для работы с самой БД SQLite. Да, снова переделать классы из старого проекта в новый вариант. В новом варианте всё будет так же лаконичнее и без лишних наворотов. Уберем из класса функции логирования, к примеру. А зачем это нужно, если можно создать один общий логгер, записывающий в журнал событий все события в программе. И к нему же можно будет подключить события изменения данных в базе данных через эвенты класса для работы с SQLite.
Но тут нужно сказать, что в новой версии программы изменения были внесены и в состав подключаемых через nuget библиотек. Теперь у меня установлены две версии бибилиотек-движков для SQLite. Одна - System.Data.Sqlite, другая - Microsoft.Data.Sqlite. Пришлось сразу поставить обе библиотеки, так как мне требуются функциональные возможности их обеих. А ни в одной из них нет всех этих возможностей. Так что придется делать вот такую вот комбинацию.
Для открытия файла базы данных будет использоваться библиотека Microsoft.Data.Sqlite, так как там есть поддержка шифрования баз данных. Ну а после открытия файла БД с помощью второй библиотеки (System.Data.Sqlite) будет создаваться временная (в оперативной памяти) база данных и из открытого соединения через первую библиотеку будут копироваться все объекты и данные в БД, созданную через вторую библиотеку. Так что вся работа (редактирование) БД будет производится в соединении, созданном в оперативной памяти. Это во-первых делает редактирование БД быстрее, а во-вторых упрощает структуру кода.
В прошлой версии программы открытие файла БД в оперативной памяти было опциональным. Теперь же это будет дефолтной установкой, которая не будет изменяться. Так будет удобнее и проще. но открываться база данных может продолжительное время, если там данных много. Ну а это уже минус. Ну что ж поделаешь, без минусов нигде. Так что вот так.
Ну да ладно. На этом у меня пока что всё. Завтра начнем клепать класс для работы с SQLite. Ну а на этом у меня пока что всё, и теперь уже до новых постов и до новых свершений.

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.