Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. QSqlRelationalTablemodel - setFilter
Forum Updated to NodeBB v4.3 + New Features

QSqlRelationalTablemodel - setFilter

Scheduled Pinned Locked Moved Unsolved German
2 Posts 2 Posters 480 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    moppi83
    wrote on last edited by
    #1

    Hallo,

    ich nutzte nutze für eine Datenbankanbindung ein QSqlRelationalTableModel mit mehreren Relationionen.
    Ich beschreibe mein Problem mit Hilfe des klassischen Bibliotheksbeispiels:

    Tabelle Ausleihe:
    Spalten Id, NutzerId, BuchId, Datum;

    Nun sollen in meiner Tabelle aber nicht die Ids auftauchen, sondern die Bezeichnungen.
    Bsp:

      m_Ausleihe->setRelation(2, QSqlRelation("NutzerId", "Id", "Name")); 
    

    (Die Tabelle NutzerID enthält (Id, Name);

    Soweit klar, funktioniert zufriedenstellend.

    Jetzt möchte ich aber z.B. die Ausleihe-Tabelle nach einem bestimmten Nutzernamen filtern, durch die Tabelle komme in der ersten Runde aber nicht an die ID heran, sondern nur an den Namen.
    Jetzt könnte man das durch eine zusätzliche SQL-Abfrage lösen. Gibt es dazu einen eleganteren Weg?

    Grüße

    Moppi

    JonBJ 1 Reply Last reply
    0
    • M moppi83

      Hallo,

      ich nutzte nutze für eine Datenbankanbindung ein QSqlRelationalTableModel mit mehreren Relationionen.
      Ich beschreibe mein Problem mit Hilfe des klassischen Bibliotheksbeispiels:

      Tabelle Ausleihe:
      Spalten Id, NutzerId, BuchId, Datum;

      Nun sollen in meiner Tabelle aber nicht die Ids auftauchen, sondern die Bezeichnungen.
      Bsp:

        m_Ausleihe->setRelation(2, QSqlRelation("NutzerId", "Id", "Name")); 
      

      (Die Tabelle NutzerID enthält (Id, Name);

      Soweit klar, funktioniert zufriedenstellend.

      Jetzt möchte ich aber z.B. die Ausleihe-Tabelle nach einem bestimmten Nutzernamen filtern, durch die Tabelle komme in der ersten Runde aber nicht an die ID heran, sondern nur an den Namen.
      Jetzt könnte man das durch eine zusätzliche SQL-Abfrage lösen. Gibt es dazu einen eleganteren Weg?

      Grüße

      Moppi

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by JonB
      #2

      @moppi83
      Wenn ich es gut verstehen habe:

      https://doc.qt.io/qt-5/qsqlrelationaltablemodel.html#details

      The reference table name is aliased. The alias is the word "relTblAl" and the relationed column index joined by an underscore (e.g. relTblAl_2). The alias can be used to filter the table (For example, setFilter("relTblAl_2='Oslo' OR relTblAl_3='USA'")).

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved