IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

FireDac, SQlite, relation maître/détail


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Par défaut FireDac, SQlite, relation maître/détail
    Bonjour,
    Environnement Windows 8/10, SQLite 32 bits, Radstudio 10.3.3

    J'ai paramétré une relation maître/détail entre un fichier maître : Produits et un fichier détail: AutreNoms. Les 2 fichiers possèdent une clé commune NumM.

    Je parcoure la table avec un DBGRid et je souhaite récupérer le nom latin (AutreNoms.NomLatin) de la plante via une relation Maître/Détail entre les deux tables via un DBEdit.

    Le FDTable.
    MasterSource pointe sur Produits (indexé sur sa PK Nom Unique Not Null)
    MasterField pointe sur Produits.NumM (commun aux deux fichiers)
    IndexField pointe sur AutreNoms.NumM (fichier AutreNoms NumM)
    DetailField pointe sur AutreNoms.NumM

    Pour le FDTable.Active, point de problème et les champs sont bien inscrits dans l'éditeur de champs.

    Lors du test avec l'éditeur de requête, j'obtiens le résultat souhaité mais pas en dynamique (CTRL-F9) car les noms bouclent sur les 2 premières lignes indépendamment du Produit.Nom... or NumM est unique dans la table Produits.

    J'ai paramétré les FetchOptions de FireDac (conformément aux suggestions de Cary Jensen Delphi In Depth : FireDac), notamment les DetailCascade, DetailDelay et autre DetailOptimize, résultat sans changement. J'ai testé avec un FDQuery tout en rencontrant les mêmes soucis et le FDConnection est testé "Connection établie"...

    J'ai testé avec un Id_Produits PK UNIQUE UNIQUE NOT NULL AUTOINCREMENT, même problème...

    Suggestions bienvenues.

    Bonne fin de journée, cordialement,

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 658
    Billets dans le blog
    65
    Par défaut
    Bonjour au caillou,

    Perso, je n'ai jamais utilisé la fonctionnalité maitre-détail de Firedac, même si j'aime les nouveautés celle-ci ne fait pas partie de mes choix de pistes à suivre.
    J'utiliserai donc plutôt une requête avec jointure à la place d'une table avec détail

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    Select <Listes des colonnes nécessaires de p>,a.NOMLATIN from Produits p left join AutresNoms a where p.NumM=a.NumM

  3. #3
    Membre confirmé
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Par défaut FireDac, SQlite, relation maître/détail
    Bonsoir SergioMaster,
    Ici, c'est l'heure qui va bien, à ta santé...

    J'ai testé avec un FDQuery, même problème... pourtant les tests tant sous RadStudio que sous SQLiteStudio fonctionnent...

  4. #4
    Membre confirmé
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Par défaut FireDac, SQlite, relation maître/détail
    De plus, l'affichage du nom latin n'est qu'un des affichage de la page, j'en ai un bonne quarantaine d'autres... et c'est assez fantaisiste.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 658
    Billets dans le blog
    65
    Par défaut
    Bonjour, pour moi c'est le matin

    les tests tant sous RadStudio que sous SQLiteStudio fonctionnent...
    Donc si la requête est bonne ...
    avec un FDQuery, même problème...
    là je ne comprends pas, une grille ou un TDBEdit ou plusieurs ne peuvent qu'afficher les données obtenues

    De plus, l'affichage du nom latin n'est qu'un des affichage de la page, j'en ai un bonne quarantaine d'autres... et c'est assez fantaisiste.
    A force de faire des essais une erreur de datasource ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Par défaut FireDac, SQlite, relation maître/détail
    A priori non, mes DataSources pointent bien chacun sur leurs tables respectives. Certes, une bonne trentaine pointent sur la table Produits mais normalement, cela ne pose pas de souci.

    J'ai fait une requête style

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(*) AS DOUBLON, NUMM, NOMLATIN, AUTRENOM, CHINOIS, AYURVEDA
    FROM AUTRENOMS
    GROUP BY NOMLATIN
    HAVING COUNT(*) > 1

    sur chacune des tables pour trouver des doublons, tout est propre.

    Tous les index sont UNIQUE et incluent tous l'ID_ de leur table pour en préserver l'unicité.

    Je me pose la question d'une erreur logicielle car ce n'est pas la seule table avec laquelle je rencontre des soucis... ce qui me fait dire cela, ce sont les clignotements intempestifs du RadStudio à l'occasion de la sélection d'un onglet, d'une méthode ou d'une propriété.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de création relation maître détail
    Par codial dans le forum Bases de données
    Réponses: 15
    Dernier message: 28/08/2016, 00h30
  2. Publipostage; Relation maître détails
    Par Just-Soft dans le forum Word
    Réponses: 3
    Dernier message: 12/01/2009, 10h54
  3. Relation maître détail
    Par souminet dans le forum Débuter
    Réponses: 7
    Dernier message: 25/10/2008, 16h37
  4. Réponses: 14
    Dernier message: 07/10/2008, 12h45
  5. Problème de création relation maître détail
    Par codial dans le forum Firebird
    Réponses: 4
    Dernier message: 21/02/2008, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo