Darstellung von Datenbanken
Verfasst: 14. April 2014 22:17
Hallo,
Ich sitze momentan an einem kleineren Datenbank-Programm und habe da einige Probleme mit den Views:
- bei einem Join zweier Tabellen habe ich das Problem, das die Tabellen z.T. gleichnamige Felder enthalten. Wie kann ich im View bzw. Model (QTableView - QSqlQueryModel) auf die entsprechenden Felder einer der beiden Tabellen gezielt zugreifen (oder ist es nicht möglich) - über den Feldnamen bekomme ich jedesmal den Namen ohne Spezifikation der Tabelle.
- Wenn ich Datensätze einfüge / ändere / lösche sollen diese Änderungen sofort in die Anzeige des Tabelleninhaltes übernommen werden. Beim vorher verwendeten QSqlTableModel reichte ein Aufruf von select(), hier nun kann ich mit QSqlQueryModel::query().exec() zwar die Query neu ausführen, die Änderungen werden aber erst wirksam, wenn ich in den TableView klicke. Beim Löschen eines Datensatzes wird dann auch die Anzahl der Zeilen im TableView nicht angepasst. Was muss ich machen, um die Änderungen sofort anzuzeigen?
- Ich habe verschiedene Tabellen z.T. mit einer 1:n -Beziehung (d.h. direkter Join der beiden Tabellen funktioniert) z.T. auch mit einer n:m-Beziehung, d.h. ich habe eine weitere Tabelle, die die möglichen Kombinationen enthält. Nun möchte ich in einem View ein paar spezieller Dinge anzeigen und zwar :
a) Anstelle der einzelnen Felder der einen Tabelle möchte ich eine Kombination verschiedener Feldinhalte in einem einzelnen Feld anzeigen
b) bei den Tabellen mit n:m-Beziehung soll beim View der einen Tabelle für jeden Datensatz angezeigt werden, mit wievielen Datensätzen der 2. Tabelle er verknüpft ist.
Ist so etwas mit Delegates möglich (falls ja, irgendwelche Tips, wie ich vorgehen kann? ) oder muss ich hierzu das ganze in eine temporäre Tabelle auslesen und dann diese anzeigen?
Für alle Antworten schon einmal im Voraus Danke.
mit freundlichen Grüßen
Tilman (Räger)
Ich sitze momentan an einem kleineren Datenbank-Programm und habe da einige Probleme mit den Views:
- bei einem Join zweier Tabellen habe ich das Problem, das die Tabellen z.T. gleichnamige Felder enthalten. Wie kann ich im View bzw. Model (QTableView - QSqlQueryModel) auf die entsprechenden Felder einer der beiden Tabellen gezielt zugreifen (oder ist es nicht möglich) - über den Feldnamen bekomme ich jedesmal den Namen ohne Spezifikation der Tabelle.
- Wenn ich Datensätze einfüge / ändere / lösche sollen diese Änderungen sofort in die Anzeige des Tabelleninhaltes übernommen werden. Beim vorher verwendeten QSqlTableModel reichte ein Aufruf von select(), hier nun kann ich mit QSqlQueryModel::query().exec() zwar die Query neu ausführen, die Änderungen werden aber erst wirksam, wenn ich in den TableView klicke. Beim Löschen eines Datensatzes wird dann auch die Anzahl der Zeilen im TableView nicht angepasst. Was muss ich machen, um die Änderungen sofort anzuzeigen?
- Ich habe verschiedene Tabellen z.T. mit einer 1:n -Beziehung (d.h. direkter Join der beiden Tabellen funktioniert) z.T. auch mit einer n:m-Beziehung, d.h. ich habe eine weitere Tabelle, die die möglichen Kombinationen enthält. Nun möchte ich in einem View ein paar spezieller Dinge anzeigen und zwar :
a) Anstelle der einzelnen Felder der einen Tabelle möchte ich eine Kombination verschiedener Feldinhalte in einem einzelnen Feld anzeigen
b) bei den Tabellen mit n:m-Beziehung soll beim View der einen Tabelle für jeden Datensatz angezeigt werden, mit wievielen Datensätzen der 2. Tabelle er verknüpft ist.
Ist so etwas mit Delegates möglich (falls ja, irgendwelche Tips, wie ich vorgehen kann? ) oder muss ich hierzu das ganze in eine temporäre Tabelle auslesen und dann diese anzeigen?
Für alle Antworten schon einmal im Voraus Danke.
mit freundlichen Grüßen
Tilman (Räger)