przez miko » poniedziałek, 21 grudnia 2009, 16:53
hmmm, nie wiem, albo nie jasno sie wyrazilem, albo moze i mam zle podejscie do programowania, nie wiem - nie jestem profsjonalista.
Wiec moze opisze sytuacje w jakiej potrzebuje tego kodu:
posiadam w programie okno filtra. Uzytkownik wybiera z poszczegolnych pol kombi (jak na zalaczonym obrazku)
Za kazdym razem kiedy uzytkownik doda jakis warunek moj program w tle sklada z tego fragment instrukcji SQL i dokleja go do reszty instrucji.
Zakladajac, ze uzytkownik dodal 3 warunki moja instrukcja sql wyglada tak:
"select * from tabela where "+cw1-> war_sql+cw2-> war_sql+cw3-> war_sql;
takich warunkow moze stworzyc sobie dowolna ilosc, np.:
(WEEKNO<13 AND WEEKNO>40 AND RISED_BY 'JOHN T.') OR (WEEKNO<10 AND WEEKNO>20 AND RISED_BY 'CARREN B.') OR TAG_CLOSED='FALSE'
...i tak dalej
chce, zeby kazdy warunek przechowywany byl w odrebnym obiekcie klasy Twarunek.
Taki obiekt; dajmy na to
cw1->war_id=1;
cw1-> war_sql=" AND WEEKNO>40";
cw1->war_dsc=" AND WEEK NUMBER IS LESS THAN 40";
Ale 'teoretycznie' uzytkownik moze stworzyc takich skladnikow sql'a nieskonczenie wiele. Moge 'na sztywno' zdefinowac obiekty klasy Twarunki
Twarunki *cw1; Twarunki *cw2, Twarunki *cw3 ........ Twarunki *cw100;
ale wlasnie takie rozwiazanie wydalo mi sie zlym podejsciem do programowania, ale moze sie nie znam...
jak wspomnialem - ucze sie dopiero klas i tak staram sie to jakos logicznie wykorzystac.
Dodam tyko, ze problem moze byc nieco oderwany od rzeczywistosci, ale czasami przydaje sie mozliwosc utworzenia calkiem nowej zmiennej typu dajmy na to int w trakcie dzialania programu.
Nie mozna przeciez zdeklarowac int Edit1->Text; (dzie Edit1->Text="P") alby otrzymac int p;
(znow tylko obrazowo)