Bonjour,

J'ai un problème à vous soumettre.

J'utilise une base SQLite.

J'utilise des QSqlRelationalTableModel et lorsque je crée une relation avec une clef étrangère (QSqlRelation), le model ne contient aucune données. Si je ne créé pas de relation, le model contient les données voulues (je sélectionne l'ensemble des données de la table).

Voici par exemple, une table pour laquelle je ne peux pas afficher autre chose que les identifiants des clefs étrangères

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE local (
	id INTEGER AUTO_INCREMENT UNSIGNED NOT NULL,
	type_zone INTEGER UNSIGNED NULL,
	type_local INTEGER UNSIGNED NULL,
	type_eclairage INTEGER UNSIGNED NULL,
	nom VARCHAR(20) NULL,
	designation VARCHAR(20) NULL,
	PRIMARY KEY(id),
	FOREIGN KEY(type_zone) REFERENCES type_zone(id),
	FOREIGN KEY(type_local) REFERENCES type_local(id),
	FOREIGN KEY(type_eclairage) REFERENCES type_eclairage(id)
);
La table type_eclairage contient elle aussi une clef étrangère :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
CREATE TABLE type_eclairage (
	id INTEGER AUTO_INCREMENT UNSIGNED NOT NULL,
	technologie_eclairage INTEGER UNSIGNED NOT NULL,
	nom VARCHAR(20) NOT NULL,
	designation VARCHAR(20) NOT NULL,
	apport_thermique FLOAT NULL,
	PRIMARY KEY(id),
	FOREIGN KEY(technologie_eclairage) REFERENCES technologie_eclairage(id)
);
Je veux afficher le nom du type d'éclairage au lieu de son id, mais quand je fais la relation, le model renvoyé est vide...

Je ne comprends vraiment pas l'origine de ce problème.