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 :

Récupérer la table d'origine du champs


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Récupérer la table d'origine du champs
    voila, je rempli une listBox avec les champs qui proviennent d'une requête
    avec une jointure sur plusieurs tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListBox1.Items := Query1.FieldDefList;
    mais je voudais que cette listbox se remplisse avec le nom_de_la_table.nom du champs
    mais je ne sais pas comment récupérer la table d'origine étant donné que c'est une requete créé dynamquement à partir d'un fichier ini.
    ex:
    champs_select=*
    tables= client, commandes, fournisseur
    champs jointure= client.code=commande.codeclient and commande.codefournisseur=fournisseur.code

    Merci d'avance pour votre aide...

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Aufaite je sais pas si c'est important mais derrière c'est une base access 97.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Voila je pense que ca peut marcher:
    ListBox1.Items.add(query1.FieldValues[query.Fields.Fields[0].FullName]);

    Fields[0] c'est le premier champ de ta requete.


    Bon courage...
    vous vous battez pour la gloire ou pour l'honneur !! Moi je me bat pour l'argent !! Chacun se bat pour se qu'il n'a pas !!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    cette fonction me renvoie la valeur contenue dans le champs à l'indice zéro.
    Moi ce qu'il me faut c'est le nom_de_la_table.nom_du_champs
    je me fous du contenu.
    Donc pour récupérer le nom du champs j'ai pas de problème mais c'est pour connaître la table à laquelle il appartient.

  5. #5
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 837
    Points : 975
    Points
    975
    Par défaut
    Dans tout ce que j'ai pu lire jusqu'à présent, je n'ai encore jamais relevé d'information sur ce que tu demande (NomTable.NomChamp).
    Aussi, je ne sais pas s'il existe une méthode ou fonction qui te permettrait d'obtenir le nom du champ avec le nom de la table.
    Autrement, tu pourrais essayer en utilisant des alias à tes noms de champ. dans ton fichier ini:
    champs_select=NomChamp1 NomTable_NomChamp1, NomChamp2...
    Dans ton code, tu decoderais les noms de champ pour obtenir les noms de tes tables.
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Essayez la propriété "Origin" de la classe TField.

    ListBox1.Items.add(query1.Fieldss[0].Origin);



    J'éspère que ça vous sera utile...
    Houba, houba !!

    _Marsu_

    Développeur Delphi

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    La propriété "origin" a l'air de répondre à ma demande mais elle ne me renvoie rien donc si quelqu'un sait pourquoi ou a une autre solution je suis toujours preneuse.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    En fait, ce que je voulais faire n'est pas possible. je ne peux pas accéder à la table d'origine sur une requête exécutée. Merci pour le coup de main malgré tout.

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

Discussions similaires

  1. [MySQL] Récupérer le nom de tous les champs d'une table
    Par cruntett dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/09/2008, 15h18
  2. Réponses: 4
    Dernier message: 28/03/2007, 17h27
  3. Réponses: 5
    Dernier message: 18/02/2007, 13h46
  4. récupérer la liste des noms des champs d'une table
    Par la_didise dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 16h55

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