Utiliser le champ d'une vue
Bonjour,
J'utilise Delphi 11.1 avec les composants firedac pour afficher les données d'une base sqlite.
Dans ma base, j'ai les données suivantes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| -- // Tables
CREATE TABLE "auteurs" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"nom" VARCHAR(255) NOT NULL,
"prenom" VARCHAR(255) DEFAULT NULL
);
-- // Vues
CREATE VIEW auteurs_nom_prenom AS
SELECT
"id",
CAST(
CASE
WHEN "prenom" IS NULL OR "prenom" = "" THEN "nom"
ELSE "prenom" || " " || "nom"
END
AS varchar(510)) "prenom_nom"
FROM "auteurs"; |
Je souhaite afficher des données en faisant une jointure sur ma vue.
Code:
1 2 3 4 5 6
| qry.SQL.Text := 'SELECT l."titre", l."lu", '
+ ' g."nom" "genre" '
// + ' , a.prenom_nom'
+ ' FROM "livres" l '
+ ' LEFT JOIN "genres" g ON l."genre_id" = g."id" '
+ ' LEFT JOIN "auteurs_nom_prenom" a ON l."auteur_id" = a."id";'; |
La requête fonctionne correctement dans sqlite.
Avec la ligne commenté, cela fonctionne, mais si je décommente , a.nom_prenom, j'obtiens l'erreur : 'Type de champ non valide'.
Savez-vous comment corriger cette erreur ?