Daten-Salat Kapselung
-
Hallo Gemeinde,
ich habe ein Problem mit meinen Daten. Ich habe eine Kundendatenbank, diese Datenbank enthält derzeit 2055 Kunden jeder Kunde "besteht" aus 82 Informationen. Das macht 2055x82 = 168'510 Daten. Meine erste Überlegung war dem zufolge eine Struktur anzulegen.
typedef struct { string vorname; string nachname; // ...etc. } SKunde;Die Struktur wird dann in eine List gepackt:
list<SKunde*> LKunden;Nun habe ich ja das Problem, das ich die Daten aus der Datenbank der Struktur zuweisen muss, das ganze realisiere ich in einer Schleife.
Ich gehe jetzt einfach mal von einem "SELECT *" aus. Also muss ich quasi einmalig:
LKunden[i]->vorname = sqlResult.vlaue(0);Machen. Das klappt super und ich kann problemlos damit arbeiten.
Jetzt gibt es da aber noch die Gui... Wenn ich Informationen anzeigen will, habe ich immer einen Enormen Schreibaufwand, da ich ja jedem Widget einen Wert zuweisen muss. Meine Frage ist, gibt es eine Möglichkeit, wie ich das umgehen kann, das ich immer stupide 82 Werte setzen muss?
Also:
vornameLineEdit-setText(LKunden[i]->vorname); nachnameLineEdit->setText(LKunden[i]->nachname);Wenn ich das 3 Mal schreiben muss bei 82 Zeilen Code bekomme ich die Kriese.
Es gibt denke ich mal mehrere Ansätze das zu lösen. Ich könnte eine Funktion bauen "generateWidget();" Da habe ich aber etwas Bedenken, das diese dann nicht Flexibel genug ist. Daher meine Frage wie geht Ihr mit größeren Datenmengen um, oder hat jemand einen Realisierungsansatz? Gibt es für sowas ein Design-Pattern oder so?so long
jd
-
Unterstützt denn Deine IDE/Framework DB-Komponenten?
-
Ja, das Framework ist Qt4, ich wollte das Problem aber nicht auf Qt4 ebene Lösen. Eigentlich ist es weitgehend egal, da die Vorgehensweise ja mehr oder weniger die selbe ist, es geht im Moment erstmal nur um die Theorie, wie ich es schaffe mit so einer Datenmenge zu arbeiten, ohne immer 82 Zeilen Code zu schreiben (siehe ersten Post).
so long
-
jd schrieb:
...Eigentlich ist es weitgehend egal, da die Vorgehensweise ja mehr oder weniger die selbe ist, es geht im Moment erstmal nur um die Theorie, wie ich es schaffe mit so einer Datenmenge zu arbeiten, ohne immer 82 Zeilen Code zu schreiben (siehe ersten Post).
Sofern es sich um das Zuweisen deiner Werte an GUI-Elemente Handelt wirst du nicht darum kommen für jede Zuweisung auch eine Codezeile zu schreiben. Wie soll das den bitte auch anders gehen?
Wenn deine Typen alle den gleichen Typ wären, und du die Struktur in ein Array/Vector... umwandelst (Schlechte Wartbarkeit etc.) und die Maske dynamisch aufbaust, und die Eingabefelder in einen korrespondierenden Array/Vector aufbewahrst würde es vielleicht gehen. Aber ich sehe das als sehr unsinnig an.
-
Das habe ich mir schon gedacht, hätte ja sein können das ich was übersehen habe.
Danke.