QSqlRelation auf primary key

Alles rund um die Programmierung mit Qt
Antworten
zpmg
Beiträge: 2
Registriert: 2. Oktober 2008 14:35

QSqlRelation auf primary key

Beitrag von zpmg »

Hi,

ich programmiere gerade ein Aktenverwaltungsprogramm mit Qt und MySQL. Bis jetzt ging alles relativ problemlos, nur komme ich mit folgendem problem nicht weiter:

Ich habe u.a. zwei Tabellen. In einer sind die Personen gespeichert, in der anderen die Aufgaben, die mit den Personen verknüpft sind.

Personen
======
id int(11) auto_increment
name varchar(255)
forename varchar(255)
DOB date
und noch ein paar irrelevante...

Aufgaben
======
id
patient_id
task
und noch ein paar irrelevante...

Mit 'patient_id' referenziere ich auf 'id' in der Tabelle Patienten.

Das Ziel ist, dass ich nach Aufgaben suchen kann (also sowas: SELECT .... WHERE `task` = `Brief%`)
und eine Liste der Aufgaben mit den zugehörigen Namen der Personen bekomme.

Zur Zeit verwende ich das QSqlRelationModel. Ich schaffe es auch, so eine Liste zu erzeugen. Das Problem ist nur, dass ich dafür folgenden Befehl brauche:
model->setTable("Personen");
model->setRelation(0, "Aufgaben", "patient_id", "task");
welcher wiederrum die id Spalte mit task ersetzt, was dazu führt, dass ich die Daten mangels id nicht weiterverarbeiten kann.

Gibt es eine Chance, dass ich das mit dem QSqlRelationModel lösen kann oder muss ich auf das QSqlQueryModel umsteigen?

Ich danke im Vorraus!
Undefined
Beiträge: 34
Registriert: 19. Oktober 2006 17:12

Beitrag von Undefined »

Ja - in dem du deine SQL Tabellen Struktur auch so gestaltest das sie einen INDEXES,PRIMARY KEY auf andere Tabellen oder Feld hat. Dein SQL Code weist diesen nicht auf.
zpmg
Beiträge: 2
Registriert: 2. Oktober 2008 14:35

Beitrag von zpmg »

Ok es hat sich erledigt. Ich habe das jetzt mit dem QSqlQueryModel und einem INNER JOIN gelöst. Ich finde es aber Schade, dass das QSql(Relational)TableModel keine Möglichkeit für JOINs bietet.
Antworten