Kolejna moja pierdoła.
LQL - Linear Query Lanquaqe
Do małych projektów po prostu żal dołączać ogromnego SQL'a, wtedy z pomocą przychodzi LQL.
Jeśli chodzi o nazwę, to nie nawiązuje ona do sposobu napisania, lecz w nim pisania.
Pozwala na tworzenie tabel i innych dupereli. Wszystko jest w paczuszce, zawierającej:
>> LQL.hpp //nagłówek
>> LQL.cpp //ciało
>> Main.cpp //Źródło programu
>> LQL TEST.exe //Program
Link:
http://www.mediafire.com/download/7wgfoz...L_1.0r.rar
Źródło samego programu wstawiam tu:
#include "LQL.hpp"
#include <iostream>
using namespace std;
int main()
{
string LQLPath, Queue;
cout << "LQL: linear query lanquaqe" << endl;
cout << "Podaj sciezke, gdzie lql ma stacjonowac: " << endl;
cin >> LQLPath;
T::LQL LQL(LQLPath);
auto Sel = LQL.GetSelected();
cout << "Jesli dostales komunikat, to raczej jest dobrze - po prostu lql nie moze stworzyc swojego folderu. nie przejmuj sie." << endl;
cout << "By otrzymac pomoc, wpisz -help; by wyjsc z programu, wpisz -quit. A teraz wprowadzaj komendy!" << endl;
while(true)
{
cout << " >> ";
getline(cin, Queue);
if(Queue == "-help")
{
cout << "CREATE FILE <sciezka> <-- Tworzy plik." << endl;
cout << "CREATE TABLE <nazwa> <-- Tworzy tabele." << endl;
cout << "DELETE TABLE <nazwa> <-- Usuwa tabele." << endl;
cout << "RENAME TABLE <nazwa> TO <nowa nazwa> <-- zmienia nazwe tabeli." << endl;
cout << "CREATE SCHEMA FOR <nazwa> AS: <nazwy> <oddzielone> <spacja> <-- tworzy wzorzec." << endl;
cout << "ADD TO <nazwa> VALUES: <tak> <jak> <w schemacie> <-- Dodaje pozycje." << endl;
cout << "SELECT ROWS FROM <nazwa> WHERE <np. NAME> == <np.STEVE> <-- wybiera wiersze, gdy po WHERE damy *, wybierze wszystkie." << endl;
cout << "DELETE ROW FROM <nazwa> AT INDEX <index, np. 0> <-- usuwa wiersz." << endl;
} else if(Queue == "-quit")
break;
else
{
LQL.ExecuteQueue(Queue);
Sel = LQL.GetSelected();
for(unsigned x = 0; x < Sel.size(); ++x)
{
for(unsigned y = 0; y < Sel[x].size(); ++y)
{
cout << Sel[x][y].first << ": " << Sel[x][y].second << endl;
}
}
}
}
return 0;
}
Screen:
Działa także pod linuxem :)
Myślę, że komend jest jak na ten moment wystarczająco dużo :)
A tak ogólnie:
Jest to prosty język zapytań, napisany w C++.
Można go użyć do np: Tabeli wyników, listy przedmiotów, skilli... do wielu rzeczy :)
Przykład użycia z Programem:
C:\LQL <-- ustawiamy folder dla interpretera
CREATE TABLE tabela <-- tworzymy tabele
RENAME TABLE tabela TO tab <-- zmieniamy nazwe tabeli
CREATE SCHEMA FOR tab AS: Imie Nazwisko Plec Wiek <-- tworzymy schemat wierszy
ADD TO tab VALUES: Adam Kowalski Facio 33 <-- dodajemy wiersz, oprocz niego kilka innych :D
ADD TO tab VALUES: Nowak Nowakowski Facio 34
ADD TO tab VALUES: Jurek Nowakowski Facio 25
ADD TO tab VALUES: Ewa Szybka Kobita 36
ADD TO tab VALUES: Paula Wolna Kobita 21
SELECT ROWS FROM tab WHERE * <-- Wyświetlamy wszystkie wiersze z tabeli tab; * zamiast warunku
SELECT ROWS FROM tab WHERE Nazwisko == Nowakowski <-- Wyświetlamy nowaków
UPDATE ROW FROM tab AT INDEX 0: Nowak * * * <-- Zmieniamy imie Adama na nowak, reszte zostawiamy w spokoju
DELETE ROW FROM tab AT INDEX 0 <-- usuwamy Nowaka Kowalskiego
DELETE TABLE tab <-- usuwamy tabele
Update! Wersja 1.1r
http://www.mediafire.com/download/jg5gjc...L_1.1r.rar
dodałem komendę "update", a konkretniej:
"UPDATE ROW FROM <table> AT INDEX <index> WITH: <item or *> <*if you want to leave last item>"
np:
"UPDATE ROW FROM Przedmioty AT INDEX 0 WITH: Axe 130 * 5%"