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 :

jointure et rechche dans une base avec sql


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 12
    Points
    12
    Par défaut jointure et rechche dans une base avec sql
    bonjour. voila j'ai 3 table une table etudiant une table prmotion et une table anne universitaire je vz fair une jointure entre eux cela pour avoir la liste des etudiant qui appertienne a une promotion et une année universitaire choisis.
    voila mon *
    code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    begin
    form6.Query1.SQL.clear;
    form6.Query1.sql.add ('select etudiant."Nom-étud", etudiant."Prm-étud"    ,promotion."des-promo",promotion."type-promo",anuniv."anuni"');
    form6.query1.sql.add('from etudiant  , promotion    , anuniv') ;
    form6.Query1.SQL.add(' where etudiant."num-ins"=  promotion."num-ins"
    and promotion."an-uni"=anuniv."an-uni" and promotion."des"=dbedit1.text and promotion."type-promo"= dbedit2.text and promotion."an-uni"=dbedit3.text');
    form6.Query1.SQL.add ('order by  etudiant."Nom-étud" , etudiant."Prm-étud" ');
    order by etudiant.nom,etudiant.prenom;
    form6.Query1.active:=true;
    end;
    je compile cette requette ya aucune erreur mais quand j'exucute ça ne me donne rien svp si vous pouviez m'aidez .
    merci pour touts réponces


    FRANK
      0  0

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    begin 
    form6.Query1.SQL.clear; 
    form6.Query1.sql.add ('select etudiant."Nom-étud", etudiant."Prm-étud"    ,promotion."des-promo",promotion."type-promo",anuniv."anuni"'); 
    form6.query1.sql.add('from etudiant  , promotion    , anuniv') ; 
    form6.Query1.SQL.add(' where etudiant."num-ins"=  promotion."num-ins" 
    and promotion."an-uni"=anuniv."an-uni" and promotion."des"=dbedit1.text and promotion."type-promo"= '''+dbedit2.text+''' and promotion."an-uni"='''+dbedit3.text+''''); 
    form6.Query1.SQL.add ('order by  etudiant."Nom-étud" , etudiant."Prm-étud" '); 
    order by etudiant.nom,etudiant.prenom; 
    form6.Query1.active:=true; 
    end;
    Sans garantie.
      0  0

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 12
    Points
    12
    Par défaut re
    merci pour votre réponce
    mais voila j'ai deja essayé cette astuce que vous m'vaez donné mais toujour le meme problem
    merci comme meme
      0  0

  4. #4
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    J'ai loupé un edit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    begin 
    form6.Query1.SQL.clear; 
    form6.Query1.sql.add ('select etudiant."Nom-étud", etudiant."Prm-étud"    ,promotion."des-promo",promotion."type-promo",anuniv."anuni"'); 
    form6.query1.sql.add('from etudiant  , promotion    , anuniv') ; 
    form6.Query1.SQL.add(' where etudiant."num-ins"=  promotion."num-ins" 
    and promotion."an-uni"=anuniv."an-uni" and promotion."des"='''+dbedit1.text+''' and promotion."type-promo"= '''+dbedit2.text+''' and promotion."an-uni"='''+dbedit3.text+''''); 
    form6.Query1.SQL.add ('order by  etudiant."Nom-étud" , etudiant."Prm-étud" '); 
    order by etudiant.nom,etudiant.prenom; 
    form6.Query1.active:=true; 
    end;
    Cela ne marche toujours pas come cela ?
      0  0

  5. #5
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Et ce n'est pas plutôt à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form6.Query1.active:=true;
    ?
      0  0

  6. #6
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 918
    Points
    3 918
    Par défaut
    Salut

    Essaie avec une requête paramétrée.

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
      0  0

  7. #7
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Salut, je vais apporter mas contribution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    begin 
       with form6.query1 do
       try
         sql.add ('SELECT "Nom-étud","Prm-étud","des- promo","type-promo",anuni);
         sql.add('FROM ETUDIANT') ;
         sql.add('JOIN PROMOTION ON PROMOTION."an_unu" = ETUDIANT."num_ins"');
         sql.add('JOIN ANUNIV ON PROMOTION."an-uni"= ANUNIV."an-uni"');
         sql.add(' WHERE (PROMOTION."des"= :PDES')); 
         sql.add('AND (PROMOTION."type-promo"= :PTYPEPROMO')); 
         sql.add(' AND (PROMOTION."an-uni"= :PANUNI')); 
         sqlL.add ('order by  etudiant."Nom-étud" , etudiant."Prm-étud" '); 
       //initialisons les paramètres
         ParamByName('PDES').Asstring := dbedit1.text;
         ParamByName('PTYPEPROMO').AsString :=  dbedit2.text;
         ParamByName('PANUNI').AsString :=  dbedit3.text;
         open;
       except
               //gestion des erreurs;
       end;
    end;
    Essaye avec ça pour voir. En faites, j'aimes pas trop mettre les instructions de jointure dans la clause where. Je met juste les critères de selections dans la clause WHERE.

    PS : evite d'utiliser les caractères accetué ou le tiret pour les nom de table ou champs, ça complique enormement les chose après

    A+
    On progresse .....
      0  0

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci pour toutes vous réponce je doi dir que je ss nouvelle et j'aissaye d'aprondre .... je voudrais juste demandé a endry de m'explique que ve dir le dans la requette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql.add(' WHERE (PROMOTION."des"= :PDES'));
    merci de votre patience avec moi mais j'ai soif d'aprendre .


    FRANK
      0  0

  9. #9
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Il s'agit d'un paramêtre qu'il te faut créer dans la propriété PARAMETER de ton composant adoquery.

    Il est vrai que c'est plus propre et plus lisible de travailler avec des paramêtres.

    Le paramêtre est ensuite renseigné après la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //initialisons les paramètres 
         ParamByName('PDES').Asstring := dbedit1.text;
      0  0

  10. #10
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Exact Frank.
    Le truc qui me changrine un peu Sabrina, c'est que pourquoi tu ne code pas en dur ta requête SQL dans ton composant QUERY1 vu qu'il est posé sur ta fiche form6.
    Ce sera plus simple pour débuter.
    A+
    On progresse .....
      0  0

Discussions similaires

  1. [SQL-Server] importer csv dans une base de sql server avec php
    Par berroudji dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/06/2010, 09h23
  2. Charger Fichiers XML dans une table avec SQL*LOADER
    Par devdev2003 dans le forum SQL
    Réponses: 2
    Dernier message: 14/01/2008, 10h40
  3. recuperation date systeme dans une base my sql
    Par zied.ellouze dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/12/2007, 11h55
  4. recuperation date systeme dans une base my sql a l'aide d'un jsp
    Par zied.ellouze dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/12/2007, 09h04
  5. enregistrer des données dans une base avec jboss jbpm
    Par paolo2002 dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 19/09/2007, 11h56

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