[Résolu]Créer une vue avec Firebird

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1485
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

[Résolu]Créer une vue avec Firebird

Message par jeanmi2403 »

Bonjour,
Pour utiliser la fonction d’agrégation (absente de HSQL) j'ai donc créé une base exemple Firebird, et une requête qui donne le résultat attendu :

Code : Tout sélectionner

SELECT "Nom", LIST( "Prenom", ASCII_CHAR( 13 ) ) "Prenoms" FROM "Individus" GROUP BY "Individus"."Nom"
Qui me fabrique bien un enregistrement par Nom, et un champ Prenoms cumulant tous les prénoms des homonymes (juste pour l'exemple).
Si j'affiche le contenu de cette requête dans un formulaire, pas de souci, le champ texte multi ligne m'affiche bien le contenu du champ Prenoms.
En revanche, le rapport construit sur cette requête m'affiche un paquet de vermicelle à la place de ce champ :
Any[Type[com.sun.star.sdbc.XClob], com.sun.star.bridges.jni_uno.JNI_proxy@74803eb3 [oid=4d4e880;gcc3[0];d3ee99eb4ad945faaca0b12ef7259e8, type=com.sun.star.sdbc.XClob]]
J'ai lu quelque part qu'il valait mieux passer par une vue. J'ai donc essayé de créer une vue avec ma requête. Ca ne fonctionne pas, et j'ai le message suivant :
Aucun format de table n'a été trouvé. /home/buildslave/source/libo-core/dbaccess/source/ui/app/AppControllerGen.cxx:112
Je comprends maintenant le souci avec le rapport (com.sun.star.sdbc.XClob), le type du champ construit est CLOB, et, il ne sait quoi en faire, visiblement.

Ma question est donc : comment puis-je, dans ma requête, définir un type pour le champ "Prenoms" que j'ai construit ?
Groupe_Firebird.odb
Cordialement,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmi2403 le 17 nov. 2020 17:07, modifié 2 fois.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1485
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: Créer une vue avec Firebird

Message par jeanmi2403 »

Bonjour,
Grace aux camarades du forum firebird CCM, voici la solution qui va me permettre de résoudre deux problèmes que j'ai en cours.
Il suffisait de définir le type de données avec L'instruction CAST.

Code : Tout sélectionner

SELECT "Nom", CAST( LIST( "Prenom", ASCII_CHAR( 13 ) ) AS VARCHAR ( 2048 ) ) "Prenoms" FROM "Individus" GROUP BY "Individus"."Nom"
Le message d'avertissement existe toujours, mais le rapport affiche maintenant le champ multiligne correctement.
Groupe_Firebird.odb
Cordialement,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu]Créer une vue avec Firebird

Message par Dude »

Salut,
jeanmi2403 a écrit :Aucun format de table n'a été trouvé.
Il y a le rapport de bogue 126580 qui indique que la vue est créée en arrière-plan.
Un rafraîchissement est nécessaire pour l'afficher.