Я бы хотел иметь возможность анализировать произвольный оператор SQL SELECT и извлекать различные составляющие части (столбцы, отношения, условия JOIN, условия WHERE, столбцы ORDER BY), в идеале с использованием Delphi. Быстрый поиск в Google показывает несколько различных бесплатных продуктов, но неясно, завершены ли они и / или находятся в стадии активной разработки.
Моя немедленная необходимость - просто извлечь список отношений, используемых в серии определений VIEW, чтобы убедиться, что требуемые представления или таблицы существуют, прежде чем я попытаюсь СОЗДАТЬ представление. Так, например, для утверждения:
SELECT PersonID, LastName, OrderID
FROM People P INNER JOIN Orders O ON P.PersonID = O.PersonID
Мне нужно вернуть значения "Люди" и "Заказы". (Очевидно, это простой пример. Я хочу иметь возможность обрабатывать более сложные случаи, когда, например, слово «FROM» может появляться в списке столбцов как часть выражения).
Я пытаюсь предоставить эту услугу в базе данных, которая позволяет использовать функции STDCALL, экспортированные из DLL, поэтому в идеале любая библиотека-кандидат может вызываться из Delphi или C.