DataLife Engine / Работа над парсингом SQL-запросов

Работа над парсингом SQL-запросов

 

Продолжаем эпопею (работу) над C# классом для работы с базой данных SQLite. Сегодня реализовал метод Execute - теперь можно выполнять SQL-запросы. Все выполнения запросов перевожу в асинхронный режим. Пусть интерфейс не тормозит во время выполнения "тяжелых" запросов в базу данных.

Сегодня заканчиваю, так и не сделав всего, чего хотел. Как всегда, короче. После создания метода для выполнения запросов приступил к реализации парсинга структуры базы данных. Для этого из специальной таблицы sqlite получаются все объекты, хранимые в базе и их записанные SQL-запросы, создающие эти объекты переводятся в C# объекты. Непростая работёнка. Распарсить CREATE SQL-запросы для индексов, представлений и триггеров получилось делом почти плёвым, но вот парсинг запросов для создания таблиц - это уже дело на порядок сложнее. Вот на этом пока и остановился. Я уже реализовал парсинг столбцов таблиц со всеми опциями, но остались ещё ограничения как для столбцов, так и для таблиц.

.

 

.

Вот тут я застопорился. Даже пока не знаю, как это сделать. Надо думать. Весь оставшийся день. Надеюсь, что к завтрашнему дню придумать, как парсить ограничения. Загвоздка заключается дале не в самом парсинге строки с извлечением необходимых параметров, а в том, как определить, к чему привязано ограничение: к столбцу или таблицы. Вот как это сделать я пока и не знаю. Пока идеи не приходит. Только полуидея пришла, которая решает часть проблемы. Но не всю её. Вот так. Будем думать дальше.

Ну а пока на этом всё и до новых (я надеюсь) свершений.

12-05-2023, 19:21
Вернуться назад