Wyciągnięcie nazw pól i aliasów z zapytania SQL w formie str

0

Jak napisać dobry parser SQL?
np.
select ka.imie as imie, ka.nazwisko, (select wiek from tabela2),t.id
from tabela ka
left join tabela3 t on t.id = ka.id
where t.id > 5

// dotatkowo możę być oczywiście, gruop by, order by, having
// każde pole z selecta ma być wyciągane w całości, a alias jeśli jest w osobnej zmiennej
// np.(select wiek from tabela2) ma być wyciągnięte jako całość
// np sum(ka.wynik) as wynik, ma być wyciągniete "sum(ka.wynik)" jako nazwa, a "wynik" jako alias
// np cast(ka.id as varchar(11)) ma być wyciągnięte w całości

Programuję w Builderze C++

0

Co to w ogóle za pytanie? Brzmi jak tytuł książki. Zdecyduj się na coś konkretnego albo temat poleci do kosza.

0

Jak najlepiej przeszukać cały taki text ?
Czy najlepiej zamienić na tablice char i po każdym znaku sprawdzać co jest co?

I jakie warunki określić ?
np. if (slowo == "FROM" ) //

chodzi mi o pomoc w orgranizacji takiej klasy, jak również w przedstawieniu jak największej liczby przykładowych zapytań, kilka zagnieżdzeń, złączeń itp
tak aby parser był przygotowany praktycznie na każde zaytanie

0

google -> wiki lekser parser

0

Czy są może jakieś wzorce projektowe, pomocne w takim zadani??

0

wzorce, to tak IMHO nie ta kategoria.. najpierw zapoznaj sie z bison/yacc/boost::spirit lub dowolnym innym parserem/generatorem parserow

1 użytkowników online, w tym zalogowanych: 0, gości: 1