Desgin einer Datenbankanwendung

Alles rund um die Programmierung mit Qt
Antworten
Wowbagger
Beiträge: 17
Registriert: 14. Juli 2007 21:12

Desgin einer Datenbankanwendung

Beitrag von Wowbagger »

Hallo zusammen,

ich bin neu in Sachen Qt. In C++ habe ich einige verschüttete Kentnisse aus dem Studium. Trotzdem möchte ich mich jetzt mal an einem kleinen Datenbankprojekt versuchen.

Dazu gleich die erste Frage. Ich habe mir überlegt, wie ich den Zugriff auf Spalten komfortabler machen kann. Meine Idee dazu möchte ich hier gerne Diskutieren und bin auch für Alternativvorschläge offen.

Ich leite die Klasse QSqlRecord ab und füge Funktionen hinzu, die mir eine bestimmt Spalte zurückliefern. Etwa so:

Code: Alles auswählen

class myRec : public QSqlRecord {

	public:
		int i;
		myRec(){
			i=5;
		};
				
	QString getSpalte0(){
		return value(0).toString();
	}

	QString getSpalte1(){
		return value(1).toString();
	}
	
	QString getSpalte2(){
		return value(2).toString();
	}
}
Passend dazu mache ich eine Klasse, die die gesamte Tabelle repräsentiert und mir die Zeilen als myRec zurückliefert:

Code: Alles auswählen

class myModel : public QSqlQueryModel {
	public:
		myRec record(int row) {
			QSqlRecord qr = QSqlQueryModel::record(row);
			return *static_cast<myRec*> (&qr);
		}
}
Meine Fragen dazu:

Die Verwendung von static_cast ist wohl eher nicht so optimal. Z.B. wird der Konstruktor von myRec nicht aufgerufen und "i" hat einen beliebigen Wert.
Wie kann ich das eleganter lösen?

Was haltet Ihr von dem Konzept? Das schöne ist m.E., daß man in myRec auch entsprechende Set-Methoden implementieren kann, die eine Gültigkeitsprüfung vornehmen.

Ich bin gespannt auf Eure Kommentare

Wowbagger
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Die Frage ist, was willst du mit den Daten weitermachen, wie willst du sie darstellen?
Wowbagger
Beiträge: 17
Registriert: 14. Juli 2007 21:12

Beitrag von Wowbagger »

upsala hat geschrieben:Die Frage ist, was willst du mit den Daten weitermachen, wie willst du sie darstellen?
Z.B. in einer Tabelle anzeigen und in einem Formular bearbeiten.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Dann versteh ich nicht, warum du das Model nicht direkt mit der View verbindest, sondern diese komische Konstruktion dazwischen haben willst. Schau dir wegen dem zurückschreiben, auch mal dieses Beispiel an.
Antworten