From 069b40dc0f5aa7ffe2bf3eecdc33856a73c4bd4d Mon Sep 17 00:00:00 2001 From: Benjamin Petsch Date: Sun, 19 Mar 2017 23:24:17 +0100 Subject: [PATCH] added "some" functionality Now available: insert, select, update for questions and categories. TODO: delete for both, questions and categories --- project/bin/Debug/project.exe | Bin 90201 -> 125213 bytes project/dbclient.cpp | 490 ++++++++++++++++++++++++++++++++-- project/dbclient.pgc | 288 +++++++++++++++++++- project/obj/Debug/dbclient.o | Bin 17518 -> 52087 bytes project/project.depend | 2 +- project/project.layout | 10 +- 6 files changed, 748 insertions(+), 42 deletions(-) diff --git a/project/bin/Debug/project.exe b/project/bin/Debug/project.exe index bce9039bc7dd176284efc2c64d79bf43faf09047..a4df791f1c162275f7a1bd38e76e645c495f8de3 100644 GIT binary patch literal 125213 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 b;55wJ?=sU~;h}hWJLER{YdRj$UEK2z+E^e7 delta 28686 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 BxzGRr diff --git a/project/dbclient.cpp b/project/dbclient.cpp index 62fd719..4563c4c 100644 --- a/project/dbclient.cpp +++ b/project/dbclient.cpp @@ -12,9 +12,23 @@ using namespace std; void initdb(); -void insertCategory(); void menuInsert(); -void select(); +void menuSelect(); +void menuUpdate(); +void menuDelete(); + +void insertCategory(); +void insertQuestion(); + +void selectCategory(); +void selectQuestion(); + +void updateCategory(); +void updateQuestion(); + +void deleteCategory(); +void deleteQuestion(); + void cinClear(); int main() @@ -28,15 +42,22 @@ int main() cout << endl << endl << endl << "Was wollen Sie tun?:" << endl; cout << "(e): Daten eingeben" << endl; cout << "(a): Daten anzeigen" << endl; - cout << "" << endl; + cout << "(n): Daten aendern" << endl; + cout << "(l): Daten loeschen" << endl; cout << "(s): schliessen" << endl; cin >> choice; switch(choice){ case 'e': - insertCategory(); + menuInsert(); break; case 'a': - select(); + menuSelect(); + break; + case 'n': + menuUpdate(); + break; + case 'l': + menuDelete(); break; case 's': exit = 1; @@ -47,69 +68,199 @@ int main() void initdb(){ { ECPGconnect(__LINE__, 0, "CSDB@lamp.wlan.hwr-berlin.de" , "gr2" , "2Au-R2n-cQN-uuG" , NULL, 0); } -#line 41 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 62 "F:\\postgrachelor\\project\\dbclient.pgc" cout << "state: " << sqlca.sqlstate << endl; { ECPGtrans(__LINE__, NULL, "commit");} -#line 43 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 64 "F:\\postgrachelor\\project\\dbclient.pgc" } void menuInsert(){ - insertCategory(); + char choice = 0; + cout << "Welche Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + insertCategory(); + break; + case 'f': + insertQuestion(); + break; + } +} + +void menuSelect(){ + char choice = 0; + cout << "Welche Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + selectCategory(); + break; + case 'f': + selectQuestion(); + break; + } +} + +void menuUpdate(){ + char choice = 0; + cout << "In welcher Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + updateCategory(); + break; + case 'f': + updateQuestion(); + break; + } +} + +void menuDelete(){ + char choice = 0; + cout << "Aus welcher Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + deleteCategory(); + break; + case 'f': + deleteQuestion(); + break; + } } void insertCategory(){ /* exec sql begin declare section */ -#line 52 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 133 "F:\\postgrachelor\\project\\dbclient.pgc" char eingna [ 51 ] ; /* exec sql end declare section */ -#line 53 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 134 "F:\\postgrachelor\\project\\dbclient.pgc" + string h = ""; cout << "Eingabe Name: "; - cin >> eingna; - if (!cin) cinClear(); + getline(cin, h); + getline(cin, h); - if (eingna) + //cout << h << endl; + if (!(h.empty()||!strcmp(h.c_str(),"\n"))) { + strcpy(eingna, h.c_str()); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into gr2 . test ( name ) values ( $1 )", ECPGt_char,(eingna),(long)51,(long)1,(51)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} -#line 61 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 145 "F:\\postgrachelor\\project\\dbclient.pgc" if (!strcmp(sqlca.sqlstate, "23505")) cout << "GIBT'S SCHON" << endl; cout << "state: " << sqlca.sqlstate << endl; { ECPGtrans(__LINE__, NULL, "commit");} -#line 64 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 148 "F:\\postgrachelor\\project\\dbclient.pgc" } } -void select(){ +void insertQuestion(){ + /* exec sql begin declare section */ + + + + + + + +#line 154 "F:\\postgrachelor\\project\\dbclient.pgc" + char question [ 181 ] ; + +#line 155 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans0 [ 181 ] ; + +#line 156 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans1 [ 181 ] ; + +#line 157 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans2 [ 181 ] ; + +#line 158 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans3 [ 181 ] ; + +#line 159 "F:\\postgrachelor\\project\\dbclient.pgc" + int category ; +/* exec sql end declare section */ +#line 160 "F:\\postgrachelor\\project\\dbclient.pgc" + + + cout << "Frage: "; + cin >> question; + cout << "Richtige Antwort: "; + cin >> ans0; + cout << "1. Falsche Antwort: "; + cin >> ans1; + cout << "2. Falsche Antwort: "; + cin >> ans2; + cout << "3. Falsche Antwort: "; + cin >> ans3; + cout << "ID der Kategorie:" << endl << "moegliche "; + selectCategory(); + cin >> category; + if(category){ + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into gr2 . testquestions ( question , answer0 , answer1 , answer2 , answer3 , category ) values ( $1 , $2 , $3 , $4 , $5 , $6 )", + ECPGt_char,(question),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans0),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans1),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans2),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans3),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(category),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 176 "F:\\postgrachelor\\project\\dbclient.pgc" + + if(!strcmp(sqlca.sqlstate, "23503")) cout << "Das ist keine gueltige Kategorie!" << endl; + cout << "state: " << sqlca.sqlstate << endl; + { ECPGtrans(__LINE__, NULL, "commit");} +#line 179 "F:\\postgrachelor\\project\\dbclient.pgc" + + } +} + +void selectCategory(){ //Die Ausgabe funktioniert nur dann korrekt, wenn die ids eindeutig sind!!! /* exec sql begin declare section */ -#line 71 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 186 "F:\\postgrachelor\\project\\dbclient.pgc" int id ; -#line 72 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 187 "F:\\postgrachelor\\project\\dbclient.pgc" char name [ 51 ] ; /* exec sql end declare section */ -#line 73 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 188 "F:\\postgrachelor\\project\\dbclient.pgc" - cout << endl << "Ausgabe Tabelle: " << endl; + cout << "Kategorien:" << endl; /* declare xxx cursor for select \"ID\" , name from gr2 . test order by \"ID\" */ -#line 77 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 192 "F:\\postgrachelor\\project\\dbclient.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare xxx cursor for select \"ID\" , name from gr2 . test order by \"ID\"", ECPGt_EOIT, ECPGt_EORT);} -#line 78 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 193 "F:\\postgrachelor\\project\\dbclient.pgc" int residl; @@ -120,7 +271,7 @@ void select(){ ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_char,(name),(long)51,(long)1,(51)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} -#line 83 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 198 "F:\\postgrachelor\\project\\dbclient.pgc" if(!strcmp(sqlca.sqlstate, "00000")) cout << id << " " << name << endl; else if(!strcmp(sqlca.sqlstate, "02000")) cout << "Die Tabelle ist leer!"; @@ -133,12 +284,301 @@ void select(){ ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_char,(name),(long)51,(long)1,(51)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} -#line 90 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 205 "F:\\postgrachelor\\project\\dbclient.pgc" if(!strcmp(sqlca.sqlstate, "00000")) cout << id << " " << name << endl; } { ECPGtrans(__LINE__, NULL, "commit");} -#line 93 "F:\\postgrachelor\\project\\dbclient.pgc" +#line 208 "F:\\postgrachelor\\project\\dbclient.pgc" + +} + +void selectQuestion(){ + //Die Ausgabe funktioniert nur dann korrekt, wenn die ids eindeutig sind!!! + /* exec sql begin declare section */ + + + + + + + + +#line 214 "F:\\postgrachelor\\project\\dbclient.pgc" + int id ; + +#line 215 "F:\\postgrachelor\\project\\dbclient.pgc" + char question [ 181 ] ; + +#line 216 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans0 [ 181 ] ; + +#line 217 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans1 [ 181 ] ; + +#line 218 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans2 [ 181 ] ; + +#line 219 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans3 [ 181 ] ; + +#line 220 "F:\\postgrachelor\\project\\dbclient.pgc" + char cat [ 51 ] ; +/* exec sql end declare section */ +#line 221 "F:\\postgrachelor\\project\\dbclient.pgc" + + + string hQuestion = "", hAns0 = "", hAns1 = "", hAns2 = "", hAns3 = "", hCat = ""; + + cout << "Fragen:" << endl << endl; + + /* declare yyy cursor for select q . \"ID\" , q . question , q . answer0 , q . answer1 , q . answer2 , q . answer3 , c . name from gr2 . testquestions q join gr2 . test c on q . \"ID\" = c . \"ID\" order by c . \"ID\" */ +#line 227 "F:\\postgrachelor\\project\\dbclient.pgc" + + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare yyy cursor for select q . \"ID\" , q . question , q . answer0 , q . answer1 , q . answer2 , q . answer3 , c . name from gr2 . testquestions q join gr2 . test c on q . \"ID\" = c . \"ID\" order by c . \"ID\"", ECPGt_EOIT, ECPGt_EORT);} +#line 228 "F:\\postgrachelor\\project\\dbclient.pgc" + + + int residl; + residl = id; + + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch first from yyy", ECPGt_EOIT, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(question),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans0),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans1),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans2),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans3),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(cat),(long)51,(long)1,(51)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} +#line 233 "F:\\postgrachelor\\project\\dbclient.pgc" + + if(!strcmp(sqlca.sqlstate, "00000")){ + hQuestion = question; + hAns0 = ans0; + hAns1 = ans1; + hAns2 = ans2; + hAns3 = ans3; + hCat = cat; + hQuestion.erase(hQuestion.find_last_not_of(" \n\r\t")+1); + hAns0.erase(hAns0.find_last_not_of(" \n\r\t")+1); + hAns1.erase(hAns1.find_last_not_of(" \n\r\t")+1); + hAns2.erase(hAns2.find_last_not_of(" \n\r\t")+1); + hAns3.erase(hAns3.find_last_not_of(" \n\r\t")+1); + hCat.erase(hCat.find_last_not_of(" \n\r\t")+1); + cout << "Schema:" << endl; + cout << "Frage: Kategorie" << endl << "\tRichtige Antwort" << endl << "\tFalsche Antwort 1" << endl << "\tFalsche Antwort 2" << endl << "\tFalsche Antwort 3" << endl << endl << endl; + cout << hQuestion << ": " << hCat << endl; + cout << "\t" << hAns0 << endl; + cout << "\t" << hAns1 << endl; + cout << "\t" << hAns2 << endl; + cout << "\t" << hAns3 << endl; + } + else if(!strcmp(sqlca.sqlstate, "02000")) cout << "Die Tabelle ist leer!"; + + while(id != residl) + { + residl = id; + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch next from yyy", ECPGt_EOIT, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(question),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans0),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans1),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans2),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(ans3),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_char,(cat),(long)51,(long)1,(51)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} +#line 260 "F:\\postgrachelor\\project\\dbclient.pgc" + + if(!strcmp(sqlca.sqlstate, "00000")){ + hQuestion = question; + hAns0 = ans0; + hAns1 = ans1; + hAns2 = ans2; + hAns3 = ans3; + hCat = cat; + hQuestion.erase(hQuestion.find_last_not_of(" \n\r\t")+1); + hAns0.erase(hAns0.find_last_not_of(" \n\r\t")+1); + hAns1.erase(hAns1.find_last_not_of(" \n\r\t")+1); + hAns2.erase(hAns2.find_last_not_of(" \n\r\t")+1); + hAns3.erase(hAns3.find_last_not_of(" \n\r\t")+1); + hCat.erase(hCat.find_last_not_of(" \n\r\t")+1); + cout << hQuestion << ": " << hCat << endl; + cout << "\t" << hAns0 << endl; + cout << "\t" << hAns1 << endl; + cout << "\t" << hAns2 << endl; + cout << "\t" << hAns3 << endl; + } + } + { ECPGtrans(__LINE__, NULL, "commit");} +#line 281 "F:\\postgrachelor\\project\\dbclient.pgc" + +} + +void updateCategory(){ + /* exec sql begin declare section */ + + + +#line 286 "F:\\postgrachelor\\project\\dbclient.pgc" + int id ; + +#line 287 "F:\\postgrachelor\\project\\dbclient.pgc" + char name [ 51 ] ; +/* exec sql end declare section */ +#line 288 "F:\\postgrachelor\\project\\dbclient.pgc" + + cout << "Welche Kategorie soll bearbeitet werden? (ID eingeben):" << endl; + selectCategory(); + cin >> id; + cout << "Welchen neuen Namen soll die Kategorie bekommen?" << endl; + cin >> name; + if(id){ + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update gr2 . test set name = $1 where \"ID\" = $2 ", + ECPGt_char,(name),(long)51,(long)1,(51)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 295 "F:\\postgrachelor\\project\\dbclient.pgc" + + if(!strcmp(sqlca.sqlstate, "02000")) cout << "Kein derartiger Datensatz gefunden!"; + { ECPGtrans(__LINE__, NULL, "commit");} +#line 297 "F:\\postgrachelor\\project\\dbclient.pgc" + + } +} + +void updateQuestion(){ + /* exec sql begin declare section */ + + + + + + + + +#line 303 "F:\\postgrachelor\\project\\dbclient.pgc" + int id ; + +#line 304 "F:\\postgrachelor\\project\\dbclient.pgc" + char question [ 181 ] ; + +#line 305 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans0 [ 181 ] ; + +#line 306 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans1 [ 181 ] ; + +#line 307 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans2 [ 181 ] ; + +#line 308 "F:\\postgrachelor\\project\\dbclient.pgc" + char ans3 [ 181 ] ; + +#line 309 "F:\\postgrachelor\\project\\dbclient.pgc" + int cat ; +/* exec sql end declare section */ +#line 310 "F:\\postgrachelor\\project\\dbclient.pgc" + + char choice = 0; + cout << "Welche Frage soll bearbeitet werden? (ID eingeben):" << endl; + cin >> id; + if(id){ + cout << "Was soll an der Frage geaendert werden?" << endl << "(f): Die Fragenstellung" << endl << "(0): Die richtige Antwort" << endl << "(1)-(3): Eine der falschen Antworten" << endl << "(k): Die Kategorie" << endl; + cin >> choice; + switch(choice){ + case 'f': + cout << "Neue Fragenstellung: "; + cin >> question; + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update gr2 . testquestions set question = $1 where \"ID\" = $2 ", + ECPGt_char,(question),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 321 "F:\\postgrachelor\\project\\dbclient.pgc" + + break; + case '0': + cout << "Neue richtige Antwort: "; + cin >> ans0; + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update gr2 . testquestions set answer0 = $1 where \"ID\" = $2 ", + ECPGt_char,(ans0),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 326 "F:\\postgrachelor\\project\\dbclient.pgc" + + break; + case '1': + cout << "Neue falsche Antwort: "; + cin >> ans1; + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update gr2 . testquestions set answer1 = $1 where \"ID\" = $2 ", + ECPGt_char,(ans1),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 331 "F:\\postgrachelor\\project\\dbclient.pgc" + + break; + case '2': + cout << "Neue falsche Antwort: "; + cin >> ans2; + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update gr2 . testquestions set answer2 = $1 where \"ID\" = $2 ", + ECPGt_char,(ans2),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 336 "F:\\postgrachelor\\project\\dbclient.pgc" + + break; + case '3': + cout << "Neue falsche Antwort: "; + cin >> ans3; + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update gr2 . testquestions set answer3 = $1 where \"ID\" = $2 ", + ECPGt_char,(ans3),(long)181,(long)1,(181)*sizeof(char), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 341 "F:\\postgrachelor\\project\\dbclient.pgc" + + break; + case 'k': + cout << "Neue Kategorie (ID):" << endl; + selectCategory(); + cin >> cat; + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update gr2 . testquestions set category = $1 where \"ID\" = $2 ", + ECPGt_int,&(cat),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, + ECPGt_int,&(id),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);} +#line 347 "F:\\postgrachelor\\project\\dbclient.pgc" + + break; + } + { ECPGtrans(__LINE__, NULL, "commit");} +#line 350 "F:\\postgrachelor\\project\\dbclient.pgc" + + } +} + +void deleteCategory(){ + +} + +void deleteQuestion(){ } diff --git a/project/dbclient.pgc b/project/dbclient.pgc index 31e9064..4df3575 100644 --- a/project/dbclient.pgc +++ b/project/dbclient.pgc @@ -4,9 +4,23 @@ using namespace std; void initdb(); -void insertCategory(); void menuInsert(); -void select(); +void menuSelect(); +void menuUpdate(); +void menuDelete(); + +void insertCategory(); +void insertQuestion(); + +void selectCategory(); +void selectQuestion(); + +void updateCategory(); +void updateQuestion(); + +void deleteCategory(); +void deleteQuestion(); + void cinClear(); int main() @@ -20,15 +34,22 @@ int main() cout << endl << endl << endl << "Was wollen Sie tun?:" << endl; cout << "(e): Daten eingeben" << endl; cout << "(a): Daten anzeigen" << endl; - cout << "" << endl; + cout << "(n): Daten aendern" << endl; + cout << "(l): Daten loeschen" << endl; cout << "(s): schliessen" << endl; cin >> choice; switch(choice){ case 'e': - insertCategory(); + menuInsert(); break; case 'a': - select(); + menuSelect(); + break; + case 'n': + menuUpdate(); + break; + case 'l': + menuDelete(); break; case 's': exit = 1; @@ -44,7 +65,67 @@ void initdb(){ } void menuInsert(){ - insertCategory(); + char choice = 0; + cout << "Welche Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + insertCategory(); + break; + case 'f': + insertQuestion(); + break; + } +} + +void menuSelect(){ + char choice = 0; + cout << "Welche Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + selectCategory(); + break; + case 'f': + selectQuestion(); + break; + } +} + +void menuUpdate(){ + char choice = 0; + cout << "In welcher Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + updateCategory(); + break; + case 'f': + updateQuestion(); + break; + } +} + +void menuDelete(){ + char choice = 0; + cout << "Aus welcher Tabelle?:" << endl; + cout << "(k): Kategorien" << endl; + cout << "(f): Fragen" << endl; + cin >> choice; + switch(choice){ + case 'k': + deleteCategory(); + break; + case 'f': + deleteQuestion(); + break; + } } void insertCategory(){ @@ -52,12 +133,15 @@ void insertCategory(){ char eingna[51]; EXEC SQL END DECLARE SECTION; + string h = ""; cout << "Eingabe Name: "; - cin >> eingna; - if (!cin) cinClear(); + getline(cin, h); + getline(cin, h); - if (eingna) + //cout << h << endl; + if (!(h.empty()||!strcmp(h.c_str(),"\n"))) { + strcpy(eingna, h.c_str()); EXEC SQL INSERT INTO gr2.test(name) VALUES (:eingna); if (!strcmp(sqlca.sqlstate, "23505")) cout << "GIBT'S SCHON" << endl; cout << "state: " << sqlca.sqlstate << endl; @@ -65,14 +149,45 @@ void insertCategory(){ } } -void select(){ +void insertQuestion(){ + EXEC SQL BEGIN DECLARE SECTION; + char question[181]; + char ans0[181]; + char ans1[181]; + char ans2[181]; + char ans3[181]; + int category; + EXEC SQL END DECLARE SECTION; + + cout << "Frage: "; + cin >> question; + cout << "Richtige Antwort: "; + cin >> ans0; + cout << "1. Falsche Antwort: "; + cin >> ans1; + cout << "2. Falsche Antwort: "; + cin >> ans2; + cout << "3. Falsche Antwort: "; + cin >> ans3; + cout << "ID der Kategorie:" << endl << "moegliche "; + selectCategory(); + cin >> category; + if(category){ + EXEC SQL INSERT INTO gr2.testquestions(question,answer0,answer1,answer2,answer3,category) VALUES (:question,:ans0,:ans1,:ans2,:ans3,:category); + if(!strcmp(sqlca.sqlstate, "23503")) cout << "Das ist keine gueltige Kategorie!" << endl; + cout << "state: " << sqlca.sqlstate << endl; + EXEC SQL COMMIT; + } +} + +void selectCategory(){ //Die Ausgabe funktioniert nur dann korrekt, wenn die ids eindeutig sind!!! EXEC SQL BEGIN DECLARE SECTION; int id; char name[51]; EXEC SQL END DECLARE SECTION; - cout << endl << "Ausgabe Tabelle: " << endl; + cout << "Kategorien:" << endl; EXEC SQL DECLARE xxx CURSOR FOR SELECT "ID",name FROM gr2.test ORDER BY "ID"; EXEC SQL OPEN xxx; @@ -93,6 +208,157 @@ void select(){ EXEC SQL COMMIT; } +void selectQuestion(){ + //Die Ausgabe funktioniert nur dann korrekt, wenn die ids eindeutig sind!!! + EXEC SQL BEGIN DECLARE SECTION; + int id; + char question[181]; + char ans0[181]; + char ans1[181]; + char ans2[181]; + char ans3[181]; + char cat[51]; + EXEC SQL END DECLARE SECTION; + + string hQuestion = "", hAns0 = "", hAns1 = "", hAns2 = "", hAns3 = "", hCat = ""; + + cout << "Fragen:" << endl << endl; + + EXEC SQL DECLARE yyy CURSOR FOR SELECT q."ID",q.question,q.answer0,q.answer1,q.answer2,q.answer3,c.name FROM gr2.testquestions q JOIN gr2.test c ON q."ID" = c."ID" ORDER BY c."ID"; + EXEC SQL OPEN yyy; + + int residl; + residl = id; + + EXEC SQL FETCH FIRST FROM yyy INTO :id,:question, :ans0, :ans1, :ans2, :ans3, :cat; + if(!strcmp(sqlca.sqlstate, "00000")){ + hQuestion = question; + hAns0 = ans0; + hAns1 = ans1; + hAns2 = ans2; + hAns3 = ans3; + hCat = cat; + hQuestion.erase(hQuestion.find_last_not_of(" \n\r\t")+1); + hAns0.erase(hAns0.find_last_not_of(" \n\r\t")+1); + hAns1.erase(hAns1.find_last_not_of(" \n\r\t")+1); + hAns2.erase(hAns2.find_last_not_of(" \n\r\t")+1); + hAns3.erase(hAns3.find_last_not_of(" \n\r\t")+1); + hCat.erase(hCat.find_last_not_of(" \n\r\t")+1); + cout << "Schema:" << endl; + cout << "Frage: Kategorie" << endl << "\tRichtige Antwort" << endl << "\tFalsche Antwort 1" << endl << "\tFalsche Antwort 2" << endl << "\tFalsche Antwort 3" << endl << endl << endl; + cout << hQuestion << ": " << hCat << endl; + cout << "\t" << hAns0 << endl; + cout << "\t" << hAns1 << endl; + cout << "\t" << hAns2 << endl; + cout << "\t" << hAns3 << endl; + } + else if(!strcmp(sqlca.sqlstate, "02000")) cout << "Die Tabelle ist leer!"; + + while(id != residl) + { + residl = id; + EXEC SQL FETCH NEXT FROM yyy INTO :id,:question, :ans0, :ans1, :ans2, :ans3, :cat; + if(!strcmp(sqlca.sqlstate, "00000")){ + hQuestion = question; + hAns0 = ans0; + hAns1 = ans1; + hAns2 = ans2; + hAns3 = ans3; + hCat = cat; + hQuestion.erase(hQuestion.find_last_not_of(" \n\r\t")+1); + hAns0.erase(hAns0.find_last_not_of(" \n\r\t")+1); + hAns1.erase(hAns1.find_last_not_of(" \n\r\t")+1); + hAns2.erase(hAns2.find_last_not_of(" \n\r\t")+1); + hAns3.erase(hAns3.find_last_not_of(" \n\r\t")+1); + hCat.erase(hCat.find_last_not_of(" \n\r\t")+1); + cout << hQuestion << ": " << hCat << endl; + cout << "\t" << hAns0 << endl; + cout << "\t" << hAns1 << endl; + cout << "\t" << hAns2 << endl; + cout << "\t" << hAns3 << endl; + } + } + EXEC SQL COMMIT; +} + +void updateCategory(){ + EXEC SQL BEGIN DECLARE SECTION; + int id; + char name[51]; + EXEC SQL END DECLARE SECTION; + cout << "Welche Kategorie soll bearbeitet werden? (ID eingeben):" << endl; + selectCategory(); + cin >> id; + cout << "Welchen neuen Namen soll die Kategorie bekommen?" << endl; + cin >> name; + if(id){ + EXEC SQL UPDATE gr2.test SET name = :name WHERE "ID" = :id; + if(!strcmp(sqlca.sqlstate, "02000")) cout << "Kein derartiger Datensatz gefunden!"; + EXEC SQL COMMIT; + } +} + +void updateQuestion(){ + EXEC SQL BEGIN DECLARE SECTION; + int id; + char question[181]; + char ans0[181]; + char ans1[181]; + char ans2[181]; + char ans3[181]; + int cat; + EXEC SQL END DECLARE SECTION; + char choice = 0; + cout << "Welche Frage soll bearbeitet werden? (ID eingeben):" << endl; + cin >> id; + if(id){ + cout << "Was soll an der Frage geaendert werden?" << endl << "(f): Die Fragenstellung" << endl << "(0): Die richtige Antwort" << endl << "(1)-(3): Eine der falschen Antworten" << endl << "(k): Die Kategorie" << endl; + cin >> choice; + switch(choice){ + case 'f': + cout << "Neue Fragenstellung: "; + cin >> question; + EXEC SQL UPDATE gr2.testquestions SET question = :question WHERE "ID" = :id; + break; + case '0': + cout << "Neue richtige Antwort: "; + cin >> ans0; + EXEC SQL UPDATE gr2.testquestions SET answer0 = :ans0 WHERE "ID" = :id; + break; + case '1': + cout << "Neue falsche Antwort: "; + cin >> ans1; + EXEC SQL UPDATE gr2.testquestions SET answer1 = :ans1 WHERE "ID" = :id; + break; + case '2': + cout << "Neue falsche Antwort: "; + cin >> ans2; + EXEC SQL UPDATE gr2.testquestions SET answer2 = :ans2 WHERE "ID" = :id; + break; + case '3': + cout << "Neue falsche Antwort: "; + cin >> ans3; + EXEC SQL UPDATE gr2.testquestions SET answer3 = :ans3 WHERE "ID" = :id; + break; + case 'k': + cout << "Neue Kategorie (ID):" << endl; + selectCategory(); + cin >> cat; + EXEC SQL UPDATE gr2.testquestions SET category = :cat WHERE "ID" = :id; + break; + } + EXEC SQL COMMIT; + } +} + +void deleteCategory(){ + +} + +void deleteQuestion(){ + +} + void cinClear() { char Muell; cin.clear(); diff --git a/project/obj/Debug/dbclient.o b/project/obj/Debug/dbclient.o index a65eb7c135fad4fa1ee4022a6bbaaa06fe8d9a33..3be44f7b40f8b41ffe36e4f9b77c013b59d037cb 100644 GIT binary patch literal 52087 zcmeHw37k~L)o#Rpn9Y=4&NA2iUJlPA{qt z#)2-sRB)Oq*;7;(jk@!^?u5qciLWDG;k-bD z#*nMyNK$TTNr{`9hr~~R;HGFlmzI{gsjtKE$HDi8E_XOGsXe;p6?iwi`O(2MzgV*Q ztrIsKDA-R@`?sR_C#ydt{B8*NiRw?(limVKKSW>5wc&tQ(>6cWJ)x?AV`j5gR3}S- zVIWlM3|5qqX;e>`CijGCVNaOqzmBP^`jgGD-EDXF1J$2oKe}hb{@{ks`>!tC;@uR3 zmV>YFe;tSSk6^dHf7t$MXpHx>_kTnOAKXkquyw<^pQ`MQSA2EwAjK>)Y>#a@;ftrb zf?qt22C78^Jy}(dPYgIxzKN#KTFXN zpHV}6-Vn>$@c9`r54=86yuJ!vah&_FZ}w6j2g{%O9Lns%uk#VL+JCFJFB`&UpL)ch z%%1TtX7=IxA1HvmIs13wur(n{YR^Bg4FONlCf!|E^+#PxKHI#Q`+#Mris=S@4ih96#kaWNLk+pG8>^sCG1X9{W1?o<9)1FwbT}Z3<)4B85xF>t#5~LjoDzB^h z5nEsvUA>@X&QLj4p|vPI4F@__>LXtak*?6`5;UiRt}&pEqylj)AYG)ps=$xrP)*Kn z20%Jbi{|KKUw!mxKD(2;40NZHO1Jx{Yrtk(y=hPOwmswtsP*1R>JQbyu(E$%XGd)> zDor!IKXUWqPD^io`TZP9+l_>@vE1$;m!55U}{buy4XXu2~}n=nCuqazc!6x=S`&J#uZzt z-$Y|?tVQml_rvi&qpyeP>tXuZMPE;DEXaXn9Kjn4`T}wgZ!F-*5(XY#3RGaAKZt!H zh~Vdd6w`p8;y}R&_z@1o4tPMru5;hqyqkwGAifD=y5zr(1O0*esvv?dJCFjI{y?S6 zGoL^^3!WCrJ{)vGdjY9hUH7whcNXkH0z$iS&@6mz3w0+B^aqB!1rfZ{fwuy3Svv}D z7QP#B(28~da#`1Mo9`&tE-Vz|nq?~>{Xy%cf(Tyhz>N-E56ETBD>w%&yoOa&6~wrR zE)KwX1?|Y8E`dV7iDYrC*T>WKafLoEV{MBI7K3M@mYK)euH?X9TrdYYRXS&yma5dp z3Hn%}k10DX)@Gk@erPlO)<_ECp7&ei{{2)Ef0=&kepi&o^;^41{eNS>b)RjTb2;k@ ze|pMkfm3P3cK(5V$VYX(uYH|eVDb+Y=Ars>k$>Qu`RXy-mM!Qdt3S1`LhV{@GqTB+ zZo`AaqN-pScoyr%U+7$Y=7Bs%ldH69;SC0;p>(Q`m9=3JWU} z@1vfxt#M9KzAxd?LM1}5tNJxF=6s=R$!pz=IUT0|GVITFE%~o**d3G zLWHhUBn6m{BX@s~cxm9cyC6?kXjr6KXjnvl;O4$bVE4l!E^8+biy-nT*tMdM0Qs7E ze;*qB?c{+GSg5zrEaVdU1NC(V3}1C%!l;PL+QFkDh&&BGt!N)0mv!w)G$h?ouoncd z>~UCj1JWO;JsK5pS(g^vDk3-Ipv$@ekjv`2kp{|_7VHof8WCw08WqtW%GxT3VE3aU zE^AxCdJ?HBIES@hRK%rRd4O7KaX}0@?Kwr3@kN|^UDYpiUCGtSE6^PP<`=uFpX(Br#Z#Z|x{{kKp1QB= zN)DKK>fWv^Ib`Fhd%CXVlO~?}0`(_|?}O+v+EHO+iLYy+1rzP;%`P$A>_2DIQ;V7G z1hJ9VbRIofI&x0Y<7`*n4hIn7&Ibaj5y@ z8@`U=zOQ3=;*bnd3lj|XoUcPbXr#Jxe#ND=YsntEmL0MluY%w0vaTi1eG8eVzlF@c zZy~eykTUPq;}J{z$=~y_=t#)^&xO^#0KJL6l>Ttld7S~n|GBV|OaA>Ytgq2Y-}74+ z8oTxM!uki?p8wBp9@XWFapU>OJ~`-BrEU zpnV2CZP0TDy`a&%52LT4$$k44d-KchUav{^ZS=eAHNn17e!re1?EB#N=TOSN&3%6i zrR=*{d2nEx_r8bnY!fAAn<**VR7u(9O3F6b{rDl}gx{wLgN-D|?tk_Dg9p2+KTS0& zH3qX1?vYB8a98zXi6f#d)t}O&{v0$&(#)TpUu%L3sWYtC$J6z3g+B7cF!C3}cH%RW z!*navwd7NbNO)#gPuoq?VwL*XqnTluP$cX9D8Wn%pH4OIc{hEG9dkSmC2rFv#TfAh?6JYg0pt2X69k3Ag7% z5j7BN{uhc(x$DgjJC@$vA#v?}DakoQQam~Q*LRM#I?g#CeKY6G zGR`>b^N9Bp-+bM}2R=g=D|;vAabrqe0|U9?vQMoriToN96Eq+j2?;boITPsVUK$*dclW%rPbvR zrK%HExCC8*kP zz~{V>pKuOlxqS~FRI2kZhXG{`#EZt zZ1gV<)`j5&s{0u*b}o1t+d3j-d;`+6I)YT+npXd6=I?L`Oz(sTlc=g1j)PMF{9p?e z*BdU6v_``nF@K~r*5-$u{vv-Y9F6%$`dh){ALU;aZ0-z4kuE6p`$ws=^06gj)$E!X zi;t=G*Up@?V7_8Iplwkk)D%M#_@}qVR=0J;Kq@Wr&k8n^!(GI(RK)UB#F{EU+Rv%@ zB-PRuZfr(5VLwdo#`ZH|Z!FT*N=Dn*KgJ(yjjj%Nlo(WMP?RBDx6C?rr5;haJXZH7Hq|e07p(ji_A0jtzEk|g?(otUbKw_UGAo&<8miO zZg*1TdMCy1hg_=a+Nz`AU)dIEb$cS@Z);^WY|3PR$hOM3$fhK_3H4I`-u*IFEuyL= zILQuY(@H8cF|bu;LQwlllSyUCq;iE*A~VV1WP!5Jc~h)EiVo0U7Y=sRg(IBMdo(R#GDqpdD{2KpArQ=4|SV;u&9(>dLvD1f~_ zna}gpO<{zj_9ns}GILQTosGc`isugLiKD^TS^mawLnr##))96cIC^?)Kh77fYLL}S zuLhk#?z>I3rOTrTme`EO&^30pHmZ>&)VG7)khN3P+YBAN^jKyOIX!jau#Q zi273MTSS#6@3q&TTPY)x@L$N6!!@Cud9>ky}NOi$|%4ZobO;=%h5`mdW=#xVa3S* z51)6BOs>aSBQdFQ(CTy8d!B33)OBeXW>Rv{<G%Ee_;c8j>kA|y@tn>$l zs|T#~y~EX8R{DPoSKB=4uMb!Edv*-{V7Pj5So#;k)$7C3FY&AQhNW-!t51ie-{Mza z4NKqYR~HXY-|JUT(hGM~k^G;gJ(Z@Ow(B+Y57`H^)de|{>+7FCUQGhVx;G3v=V8qk zjl%J5&7Qx+KXdeGe?`%RqEdfh3kI0s$rww8adILV>h@5Tf_A<2vgqG_@>;TMXS@&JiVe#7)<%&m^^_%V{2z9uqqg6#$ZEvNB$AK z>E1w~t}}uGN2|&C2kEdfLQTOAl@W-v)pa%~fBFS9itQC>k9DZ@jf9a1q44xgTaobg z3e*LoVU>O%W%+sq8k&QRD*YnL>x)#R8F?2|DhFcFOiI%?6Cn?xoeijS!urX=C;;GKYvkXnpX&nJ?Y{I$>_yQ zaZd4h_d`i0Deql9bK&e*Y;Aj3c{4_N(C&Sh!qzHFCv0h1+@%!;I2UBX+p50 zBe+%#)TwB!qcap!hv{TzD@Nk#aGk2h%~waH9ji7~z9x~ah}MoskSa0AregRWQ-gJ? zdO^)%HN+$qEmlKyV*Y|a&HSpGnbQ|9Sfq~7M3{j495u{Np4nUJS}qM)#U>F-pP-y_)Nc*hf|eF7A}Kjq);LEvmq`bP77HUa^)yG#paCWpo;GvL({0 ze9I~6rQD{r&JN`}nbJN=x74E*e5X*lFQ?&m-wI0RP;xCslFD}~rSmAgn%PgIbUx>E zIzZ{6l#WE}(E`5HiQre>mO6GEO!XaO5e=P+?zK4D(k!2SI{Ag*lT$SLJnb8e)vLqQ zLM-U*mpP3p+b?s=t*B(b%q}5*w~6zkpYh>}JS>^*m$_{$AFf=& zhwr!W;i`3f*#2WaT>Ts$e()DQTyr!Y@AS*uF_RBBoW_S6*YV+|Yx!{V<9xV%KOgSw zH<1K>Qpkt9=kej5c0SzO#fSTD=flo@e7OHDK0J_y!Aif(2gmba*8)B~)WL^`ujIqe zcJX2NyL@;g<2Vxdc{v{*Th51Htm4Dt+xf8fXMFhOYkYX(uY7oNFlL|nW$v58ho?e( z_|-*x`1MVEczQP--wd2ga?h3FkQE5jhwC~U)sPatR0I&0kyx~nT5^iA zdcXS`rV2a~wsh9?e*Yh6FAur`Ig5H9ppeLJ#aHi-11Ha~jg^)PH|wbhRgVisDO{=- zg%-^XsU4UT%sF~CzQ*87WzIl4H+-h*{nwPjW#KccAy!)!P-Wo%J-As=q;s2Ns`uYh z3pU5xf&(zkr2^Po~IYkY?ELCHyN%i(v zDHV;AeA1&x;Bs4s8qg4FtyjG>Qp;6PE=jFiR9hNQRO(B%Xbvfo$`5F1TZQ)M-Hj5; ztzH-+HEJ4E499EwQO3U1AXxfM(>9NUxdB^sBETJh+p1&a}c1I|H8~D?n93jap}e za-mJlsiUl+>rA1l-&*TxJ9h{fgy!oH!r>TvMnbqy(^Z^J8{@|%W6~s7k0KUpx=|@q z{}koTYVTK!cjB*uPH$F@Rn}LjVWe9P51bHaS6Krs9`*W(A*;VN0{KHaU|6FCM*k}72x}fVtxVEKnrJ(V_U2CHjIcf>^+y_8B#^V#P^sd-tg|OGCjVuf zQ$zSj%X+!S-M%5?iaXt|A(408R*Wgd0L_ofy()Z9fX0@!|FX z%2eO1Yo5)4H~&JiM+IsFEx|Pb8ttg;GI9=)P$>*nFpkO|PeXDdgjO5g%KD9?scf7vgDypJjMXcZCmZJ|K5SDC zw>kL}?aRBdWWDBSDlKs`U=E!O(;zv^mS$Jt9=J|rz2QiWhY%6bDb)sXt*1_qM9+rU z7F(20Dmk+TpoK#nVH!VYkMKBpCK`J6%9UD|B1b+4C2Y8SaZf_Nt&c=;T835DpByDz z1)X6Vq|yqn|oUwfaC+6V-(DS@QLvXMuLsc5nMd8T+bqGXk6{)ylh8bq!{*RTcbm&J=Jo(*jflOr_Lo_J_f`$FNg-(fO~kCP`xv zHxa=7Cb-@sPO_d2$0SV%tkbn-b}f;rSJF6)e3;)KocOT)5?5~^W)+pg(ooI=yQ~_m zq?ArrcNU_QwADe&>Ud35Kn|-T&o@Wtp)d7;e1+ z#y4%|9QK7UA8VMYcVgajjNfzck$Q9QAiQG@ujVWU*CfNqr)jC~*H0DRv7FR>v=snv z*ydL@YZI};Qo~E9jkN`Qmk}>tGD^AcZx^NIPPcE}3zl7uN@hD-E7W|f?)Tt%-BE|< zqqB}8g{-)W%tU*AP671M3mahU0Sch{RnZ71?O?ZEtYn$4c`~V6_m2oo(86R zms)1LUMsaZS>?sx`mUprN6cBjwmB&YofIP0z2MsAaN3ul-`b`M!RCG)oNpWMlFuky zUev4;?6JAc+;0%>j`5Ltm34$=;C>$Q;{q?~YTTw<6PmnI=G!6w-@-3XB%lNkG&^kaG%{ncNj2N|yk7|2>rgYBjG63Rm8iE#UL z6sbqRaT2Pn&%yVV&8tfJ{zGMr)>e$=G?{>Fr&TamsbldG6G|464<~8P$QqQqncC%e za4fO8q=OXJxl%TBo=coDaGgh-#(Am~6ZToBYn^4mn631Bu-zW7lv$&qQ#e`aQ{Z|b zUTH~x>S}Km*7kX>&f%|Mw1(IgNaw)JcNu2WIUEVTLc=Sa1M@y$cy;G64_r$P=Re>k zRWbu6WLHUBjSIHpv01&#j&VnXABlr(;U^z{lW%HzI)SfAGI{8Pz{FD(8|B*n}JW=nKu>JQj_l)n79VT*xCe>ayO0#)C#H4+S07C9L|l@v7-2Q(sMw8K%^De4JBOUs74_ zofLAmyMvHAJ6Y20bJCIBsAEZ2i*6ls(Ebq8yW%ytJkJK?q)QL&5|&W>FUWnEEUTox z$0Uf^4KQ#xIy`(_wM}%@#CXvjwL*w*^Qx)G7SWePS5T8`H zLE<4J#pci#x^9uGi<9b+Jz|c>k4ry3Qdzz`&^og(ls3_p^hhU7ZjcUZIaEgC)XJSl ziNasjm0~TfUhU1nP#CpzV(kh@-D)IFO?AMr_#G+5ZCAYj;ZM3z;Ep>|m3^($(PfDf zc}I*u)Z>#F2d?lV9a%3YnPblV(;?p3jS3~c_$W!*j>Bsq_+ScQS1@w1H9PM`WM%dnef z!cj^s!Y9#TiA_`gEz7~3F5T?%sed!dc{D{?&YiOaQtP)Y3oTTOTX`-krvP0aK8f|> zHli=>zqQ}8Ec6f5MQ~Z?pq%fgD2uy9?uevb8@^>(^J_~2HB>p82pOvj{WA*e^PS`h zI@1?2bIJWuAlSJ^WnUv>`O*s9*y|39GH8N8Mm*Kf7ce@V9?J;^x6Wv=0ps^uwNjcj zvz1Z~w3;*KTIhT*g%KDY~t8@ZSfW&3u<^?A`%|i3MW^cUZ zCp{uvf#k+J*Da;8w{zFRj~)2o3l)^0Wnl^}r98Ek{U20Ij3O%Z#2UJ2a*DMYBA4RB zw-hpeWZb68qN{`LDmz0wR6(igMHq=#cR^woN%4&X#Sm_x=t-E$!fRM^OU-HAxsZ>n z*TDRyU5qM~DdGN_wL;GaGpFwu^yB!*Jx*yOo@kh7RVr(c7AY-{%Rn&=RGVrD&UJ+O z!FBfQcGb<3YF+mzI4`!jow-GB2UW_#S>tRQS(y51Eqpfw_ZVR_dbQ=MrI5MN$QdKWF;eLH@r61S+y}XrlV!!$>|ya`+7MnPhg*^EcKF~h0*UMP4W zS&1rP`QLUUZ#%(rtWy2)NowWMID@iYx24P23C+PIAIyO4A|vne0m)}iv3(FP?{dKf zkiE*tC%S-*_$sv#jt8EA{ENvtR0)gc`Xu5?<881VkTx2#KKLX#fVPgw8g2`ZcSQlc zW)L3Va0qK` zr{s^p^B;VYoYIEK&N|JuVw@8d$v#;D`DUZTFnKXiPatVflwE$4M_i|vq6g?Q?XPohIgqn&v74_Bb;v>D@sKsRo;_rb-X4niG9 z(7DQ$(CbxM_h>2eLKTn6=~;z!4TNqng5*BMGTB#XYmJP)dt#~ILgH;BWs1`yc`7se zrquE9IchFVUW|9GN^JSXI`zXySvjgV8e zOZ@qi;@bA#K=$2ktQ4$OH@cJ)6Lu3tJEAbL+3a?Q<0{oIRy#bR$ zspfD)O!*15;Yscu*47beY>KJ%tSTC!6$Ft6yp+A3RpMpy)%*(ndR9xxcC2{=KWmqC zRIO+2(K90LtC8RW@V<47UdLZArF3FKwj)HdF6*VJVExL@XsjU;Zm!1)5Hg9%k@Tj8Y{SlxC9P8J6wVM`Ty0@hb3s}9mjrVIeVGdXvB=1L433w}j>p?Ft zvllvJ;uwtTTSMX*Dy2=UODF{m!jCY$x!=nxleTDVYpburLv^;eF36Z`gO}%sE)5fm zG*d##hJKVmiW1bC>KGl7if_WHO2ooEf( zKv}s1J=Xt%zDe+ad6z2p2oJqXMYQPJ)=;=UusVV_cJO*zq)p`x^U&jnVwTSxUo;1b^;Cp&dWjbpqs83ejs#(Xpd)kGCk&;bDoo-1$}zjSlxt#i3HiU+#%Qg@<(z z=AI-JZ>1f(xyyy3rr2?>aw8V?HWoaua#vdqlVV@yHKe!==S=QdLduz;w4TJ zyqwi?$Zj2-chlHZml<0LRweaB$z7?HWY{l2x?e;;7H^^t_~~bmm^uPA8E~J4?t1DY z1b5O*(NsJORs-&zf(nhLG{17;(T1qJO=R%25IpOt44hmWD&lqKqTWP^U4qf2Yj0W66BO`sChceEm z4En;dr>l@J*-b^R#QkmDVqr+R!2j@R^*?}`LxU; zE??Jm3)@JmFT}hmrsJ&^aa=p!65wYDg$iz;6c>+?^r^)Yf6PX)}-PX8`jO^ZZw zs1>DFlF7B&%K5Zfdp5=)gOEY`Cmtu%2r=c)$N602DOtwC`- zo%0NgP&2@#o8uN{q7^F1OvaR3nW^7Iw<)$JQ`{P6Dl|;GB)gy=aW<`bk?KhH>JYrz zQm1?+>{MC}BXe9Fq1>F+t3$9grUtH~@a`fGj&t&d;!Lb58@QgLmzK{s&XPS(P^qTXnGs~Wh0T9%gJB#1W9f;Q#*4P}p^Y&MF+fX^SIA%e6&?+8Q$n;jO--V=s*7Z1ck-k~XM9ZvFGT~Km<(tMlv<6Ff__WZ4**$J2 zpINj(iw#0&YoBxHa1O26(mCX#P*aB*cplkDtGJ{Nq?TRWUe|#J*i5;!xXY;_=VCo5 zWG|syTJx14OZWBzFQrUc3FZE;+vwWISVOk*19;GRQ^fUQQ#=Dxnx8= zJ6KqL9x!y!Aj}ymphVhyeOWV}7D9^%*Idv|nI|=3G{2V0Zs5`ai>M+l6 z8|nK6bUkDA{aWquIBEy)yO96XVCQ+=_5y~Ip*n% z%0K^WY@29!VHvIMvU*KJG~y#wX4@!!sLD72+SaQ4O<$vPyuBs>ugqH~K~*qL9VS>7 zxAT;X%A^HU8JI?qh1Plu%X0$QIfd@3Fp?cK{%Oe9tXDV_CN;s78Vvl^pyL?QFlNxy z7NUMYa2ip^(yn22MO4S9o}&3D&W$MV;JqGNdNdbL?{IH{cOEege$pdj>Ukqz#Ngj} zp2l$5ns+!Qp7XrHiAN~$ThB|BD7=Fb&wH$m(=i&yXGq2Ipq#+u7d_TBAl+hmUF{Rv;6kjCmbWrb7J;J16KtvyChy-3?} zGcfMQN3@mvl4|oFsp)}D?X*r}F08Q5hlYzt3s+vW@XM1u(-Kh>C)ShD@E^7oxpJ1A zXThMq_Rye~7TciyGjTTJqYYv$U-n#!HfR|%glsL^poQci4^LnApmKO$k`{1s!`%W+ z_mDPfxSSKI^)lz74fqYm!5O5o2O9Ym$cVW8b7)Je(zO(gCb&kc!M%HGWqUJQ$&D}% z`j(PT$4aBKaIzYl)k8a5YFHlpBs=@txYG+HtvGY^tJD6Z6Pfra#tf%TK zh#wI{XQfqzj^KEFi7_yYtnWD+|`c9$V7Lw zcR5`x!|uCU8jc>KBwCHi%C|YnX|<#7#~F67{2$PL2<4a~lTG=!gugl^j6{3r5*T)0 z!X7d|lj2sT_4Tq}^ypp>+VqP5@w5(q{*Vbr;30up;HCA{3%s;IKh5&+t|LB9`E<_P znXtPV*Vk35WN0C+FYbjYMcP0lAQN~)i}@naD~1g!qFA#S#p=m+HME4N-d>FzZJq5j z+dj0E2)YK>=}Ow=);#xqYL zav|w}sc>@?_D&^Q5wSY7X+$el)wl%~2R>A0)M3?O!ItXD_)X{_P%PDcKT3wY0-1-!$K&r9Q*1>Q5JQMP>3Q>6u7T0Ndg zQkgW5?eo%-XrFf=CZusg$(Wu^A;$Qd=nI&>XglntrMk6Xq^Db%bnf}QG|^TaiOLQt zYS>;sp$sq4`Y7r^!#c|IxYEQJSVX#R-%_TUqqFp7hYU zB=k%=Z{}OxOVY^#I(-&+ry)0!9O?7YsklIs>4LSm1^piu!t=Nc<=p`;Ysb|PSaKMW z>ySLDhG@g6Z9JXPrQtR7bYM6McrdxBmeDL$eH|vo11FCYyo%M_00C>qa_m*pS;L!j zDr;uop&;KV zSRAil32zywtdOlh2&>dXM#0&n0Bx!*sE=1r1q)~+ov5uq2&)wRg4QlbSvz)<0(2-^ zLCjGguRYJivm0!Hx>i{mprj(6xJr#gi&eoNSXMRT^F+OasIu^Km|c)fT&0@PIbH^SYsV81U9tvA z`h}{KPNjDK0nySfdw$JQ?Cev5huo6B_$*47YMHdl9yy!RWy-o%@;^R@(&fs!PSQVK zw-mEWy1LhMuw1r68~mbe@J_W{_6c=7^B@@LQyEu*02tp2B3uqj1iW&yd`QNRO+Ggl+x;*x)r+A z+tgL+u@UH~e58Ke0;vBLl3yV@S$(ms{xpu$5=%Vz+L}`lcnH)|O}OGLBEUUmny~L| zBEUc8n(*a0M1X@TG~wQLr-sNuV|5Wtr*W4z-jXx85igI{^Xc!nhn6IlR>V_Rsb7tf zpUg(=NS0kSWi_}2Z0aiY8zZm+k8@`7S}xf- z0`}%be4nAML|1uwAP@^R1WFX`Q{A6Mf&o07#fTt;+jk5Xg3Xb$kir;*c4Ocf0lY3s z=@NAegbG>cMwC;B2S&C;7+a25?bHKRQiXm_nb_ z=eRyKSdgApfbIIGARnV%O;0C!dN$~3K7ttotTbPrJ|tlw*{h!spMVbAM~uXld9ogbggkzBSNen*PO}1-sj3L5PHgTkzNIFHqsAMwk zE8IkBywOY|lUOHtV2rWSG)SStUX@M$#O13<2yKp`bwm}sIay^K$;N$$oa=Hnc5L^qQzxzhZY7UKO&3{K4WGxg7@?@ej+He7s570G|NR-40t{Fk#V$J4@Z>($67<-oj6gS1j2f*loCvl!6He7d zq3TrBY1$B-449IQ+*LCWU8ffz2r32{O?X;Rgy3{h$cnmj2^Fm@DShM@&3)5GEh+_4wR~ z&x0=d&w)>Zs%7}JIx5vF;C?7D8=s@8VEtDHJQ>5#>G(9_WB=WPJB4E~0xrVmZG7y% zdR#L-YCcM_tbb(n!?%U8kHW{AHK`cWAI>(+#d;fN6`E9x(M#j%;^s(QabqYXsq(U7 z-s8DA(i&>+tPdB5Mvv|xtHY*cRZ)>HI~+Z;xo~39xT3Pc@LkBmb-l3I?{7*9X2{mP#Mf+g9O5@Td0W4z zk%9&?*A$1ER`M3yg^^Y~vPHeugu?A~gFtL?kB*@OaUTDSP-yN#r6g_xz)Y++;EDsI zDC`_)PuGD!ZqY7A9yWsOC`79SJDX#YiLobaz!^T+^7UVSO6T&q%Hy>%JV*AI*5pqca-FZK(^EMB|9y9z+!$Zy2jW(y`IZ$m;8xwT^r~bPn2ASui&bDT zZ&t1FvOa$O1~2C;+Ade1?BP3)DW}Hw^okdPs>GFK zP=rgkk(#WqD8ShOPsw_nKoefy?EtH6E^jVI%6>n}E|dl~ymzc)zH2=n-r}?8S(Lpg zlo%wdK4op2v1RmR{o7h9a1#Cgm&9@D@Oke0rOmSoxJB#O9&dL%Tee9vW`NU^MCTR=Rn1a#;l+(YrzPbIbGq#EVBkM$haGX=xKZY&iL8 z9{AefKYD)Qt#|R&T$Fa9cSCyG`QFE;KQaBu>8u&EBw$$&84J%0=n;Z9>XJ#jI*r&! z@6F)34t}7SfA0k@9$Rl!PLkf2A@ecD{WKx&ec2_G_8W`z`a${vdA}SXv)bNw+&t+% z;-R*B8a&VHiC|N2T>;8Jfc)pX$@e4wbolILj_|!A93>Ak-tn&=9>IvlFw7kw5A|W;n}Cc1TKcC<@lyghMIuy@%ZGa8Tgjm z8bhl!G^fuyt>fJEXBAd$Ei zNF*Kv5{XBFMB(E zKq4^$NFO!omg|A=k~L^g7}~Q2y=c&TK*urP zhd`B#zBIXBG`ZN42_&`*G-xQ0SalSTSXBfh7R&&`Lv~oO+|VdYMPC?5^fd#CmMD;D zSqCIqHUWvmB|su^8IVY92NH=N0*S=!KqB!|Adz?gNF*Ks5{YMl#DC8NiT}O;60hZ; zqY!(5^DH8-ZqU?!7=W89fXn z<^BSwifM0}+)se2nRW{1354%^K(m;(4XBdQjVAXtAkp%$p*;p9Ha`I*Ha`O-zIp*j zeDx}j=z9-HO8YaA$o>^bWIecK3(5o%Ejd7H~BpwG63Hsq@k$4VBBwhj%iC2L{ z;!i*#@iCA{{2fRnEKHJ!1pN-QNE{9%67++~bJ(f^AdwgiBoZY+A~79EBxV84VTt)b zBC!NWBu)kri6D^pxd}-890d}Ivkl)CAkn-Ph_1_d_^B+LZ#K{@rp*JYWVGDm27x4U zIt*k80f{#* z2a?jR0y>`gZZdqg1BnF>8MFsTY72Snw{8l<{{%v$E{cGJr($J|L0! z0!VDeM2Xgy1thtL0g1k2fyCxwAhCIp;hO;@nol%n8Iaf<01}&50g2{IfTTUP0ZDt@ z2_${zBZhA;ko29u1)9db`cK1m!0>%y_!Nfd!q*!}^bG-$a*qTOeZ_`vqTxH<@X@a! z2;XUjugUPOHGJz0Uzg##%JAK4_$694Ttv=0rf zcdlKxDL~Se$L86z(}08)0;**HwVT{EK+?Y3f#!1VPYl{?(C-cU$e@gYw!{!1?OmXG ztYtFL35*t*+~p=WW^y;1+^r_}4wJjb^0 zG2hRCgzpI;;d>TH_~%625nUgzrNj;rlDlIOh8jNcen*+kEuehVUH@Bz(hw z#zP`cjWjgc7F}o)4Q-mCod_iLJqc(&%bo@#wln}q8J#Bg93Uxe1JHPu_%4u0TnQxl zegGu0w*iUfyMaXZL7?$0`wJkEeF{iqp9K=x{{@$Kd?1k>4kWV20*P!XkjRb$n!uW?fkbv5kjT~oiR|e>mCV-yBw9Lwy?r(ua-=Bfx{OyIJ1RY^exj{7s1q_M-;Xk7NY#iiF z`96@Gzjv72drj^$Cie}K`>x6L9%0K40s4@Lr2D2mBK zAQ{n401_=zfyAd(K%!+XkZ4&1Bw9j1qNNFFj-vkb*b%mt(}46<7pRhR+fD8oAUSI{ z8`@SNDfdbsDVMen7OU<7lGgeekktG?OztZ{BKsPU$i4+6HXi^IoBs|ZHXj6%nh!kE zE`zoY7A+%yM9WAZ(NYW~S|$OBRWl4vD0g3FFK+>wc z3v600kZ3s!NVFUSBo>ST5-o27iI&0Nv9%lnB(x$R(NYd1TB?9VOAU}{Njut>7!M@2 zR2kY_AkjiQx{8({kZ5TD5-t8?Y%Pm{W^r@|4Xp`Cw6p+;mUTd)Wdo3CnLN_gawd>y zS!ZaQfJDnBK%(U`Ac>~!KoU)N0EyJ7<98iw;FV(L3bOp)1X}j?KWtI&$j+_gXoncsS(Wv z2x>N{-JqC3YYaNap!EiAH0WZ3E;Wc|5~Pf625mQJhe0YcN?_Rpj`&- zHfWDQdkxxW(9;GzXV415{2EA_3n+EMS=zu{V8T6?^pBwarLG=EM_{D3G&!D~r z zK_}$dv`q%B#Qmj6Tx!q{4SLj|R}7*%Qjr*mCKYsoK`jRDGUzRXau2s9-pRMoXmnPh z9u??o@-?4f>Hm3S&p%n_$p6 z20diZM+S|?$W0_x`fYTZL7y5l0b>>6TV>ELgO0$pTXHWl=zW7~amAM0pBpq9p((Vh z3@RLH)4~SbWY8-HWsS1=78rD;LBBI-076~Ls5NN2K`$AUH`?Y~ZqN@6ddHwqP$v3X z40^zzzZn!QwE2E)&^rc|7umTD2K~sO4-NXjKw|nXigU$vLOMhZ$FB4SLIQh4HFhAZ(+tJPVGDYxL8 zmY+M62SK6riM z`SOPh?7TtCGvTndnvCuOwQ|<_DNjd&b zi^A35Np9yNY`E8sP_MDzGSOSA4EbxD7g_6Cdv zk00N0?m-%h8a1gmaGJH1X^CIMG!Mc9JWVJv+2&(4PhaNQmdpV9Sk2RqdGKH<#osi| zlf^u*BZYu-{UKU-m9LQOGv#zODa3!+V_ zNur#TLuaQEo`0e4Iq_P@wT2SxCQ*LmNCMP_Uh&i&8yv;q3Z07lmN| zI6Xw6cX8y;uKUSJl!heAnMo9SFDG8lwMmq_k|=*qqKv1LkN<3Ys*@a3*eFz?|_L7px*bxHcm|s-m>VdkRD%5Kpl!!2i1j zl^wBB3%!9hy0FGIYXaD{FWQFRJHVa>fmJ2a_7&JOzquw<8!Ih!E$70HnfR@%SZTSu zI0mQEqF-l& z-Xh$wVNq>4*|DUR7WV}fg`?QWQ3a?I!7KKy;ZRHx*wHzFwSJ+XBxRo=HlKcfY-TC8 zPvcY+5a!swOJ+E#G)HZ0JXFz1mC927F*CQz63iVRSX5hAgWtD9r5BfqyZGm)?4LNM z^62NN>>myjo1DVGg@YD~gV0d;&8X@{6s5Y+G>qb>%5@7+*`=v}0!O>Y`5{oKsg0qf zQv^+t8xkT1ZkU_whuYXgi8HM5OQp41|6nvitBim6qXufxhl*tp`ZYA#*OjXmGe7fC RQG=a5YzNM-O~~Me|KBY><&OXW literal 17518 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 diff --git a/project/project.depend b/project/project.depend index 917aae7..19a236d 100644 --- a/project/project.depend +++ b/project/project.depend @@ -3,7 +3,7 @@ -1489771116 source:f:\postgrachelor\project\dbclient.pgc +1489959780 source:f:\postgrachelor\project\dbclient.pgc diff --git a/project/project.layout b/project/project.layout index 5e835ab..86bfd0c 100644 --- a/project/project.layout +++ b/project/project.layout @@ -2,14 +2,14 @@ + + + + + - - - - -