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 :

[BDE] Comment faire une requête sur 2 Ttables ?


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 64
    Points : 46
    Points
    46
    Par défaut [BDE] Comment faire une requête sur 2 Ttables ?
    Bonjour,

    Je doit réaliser un programme pour permettre de manipuler les .dbf
    Je gère cela avec les composants du BDE : Pour chaque table ajoutée, je crée un composant Ttable et un Tdatasource associé.
    Je souhaite pouvoir exécuter des requêtes sur ces tables (principalement de sélection).
    Le composant Tquery ne peut être utilisé car je n'ai pas créé de composant Tdatabase, les tables étant physiquement éparpillées.
    Comment faire pour :
    - configurer un Tquery ?
    et/ou
    - créé un Tdatabase ?

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Il est conseillé d'utiliser un TDatabase, cà permet de 'centraliser' les connexions. Et la requête se fait simplement avec un select non ?

    OU alors tu voulais faire une requête sur 2 bases ???
    http://delphi.developpez.com/faq/?pa...quetemultibase

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 8
    Points
    8
    Par défaut une solution
    En utilsant les alias BDE, on peut faire des requetes combinant les 2 alias.
    Par exemple la table "table1.dbf" alias ALIAS1 et la table "table2.dbf" alias ALIAS2
    un TQuery alias ALIAS1
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select ...... 
    from table1 t1
     join ":ALIAS2:table2.dbf" t2
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select ...... 
    from ":ALIAS1:table1.dbf" t1 ,":ALIAS2:table2.dbf" t2
    on precise pour la table table1 son alias avec la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ":ALIAS1:table1.dbf"
    Le BDE permet ansi de faire des requetes entre alias, meme si les bases sont de nature differentes.
    Par exemple, si BCDEMOS est l'alias de la base de demo (delphi/c++builder)
    avec la table animals.dbf
    et IBLOCAL la base interbase de demo
    la requete suivante est excuté sans problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select 
    t1.*,
    t2.*
    from ":bcdemos:animals" t1,":iblocal:country" t2
    C'est la puissance du BDE

    cdlt.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/08/2011, 09h53
  2. Réponses: 22
    Dernier message: 10/07/2011, 17h49
  3. [SOAP] Comment faire une requête sur un type concret ?
    Par verbose dans le forum Services Web
    Réponses: 1
    Dernier message: 17/06/2010, 13h57
  4. Comment faire une requête sur un intervalle
    Par niamo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/05/2010, 10h49
  5. [SimpleXML] comment faire une requête basée sur un namespace d'un attribut ?
    Par hansaplast dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/09/2007, 01h18

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