Partage
  • Partager sur Facebook
  • Partager sur Twitter

requete sql qui plante

Sujet résolu
    21 décembre 2010 à 11:52:25

    BONJOUR
    il y a des erreurs au niveau de ma requête pouvez vous me la corriger svp
    sachant que j'utilise delphi7 num_ins de type A et annee de type N.
    MERCI

    procedure TForm5.Button1Click(Sender: TObject);
    begin
    form7.query1.sql.clear;
    form7.query1.sql.add('select *');
    form7.query1.sql.add('from etudiant, note');
    form7.query1.sql.add('where etudiant.num_ins=note.num_ins '
                         'and etudiant.num_ins=' + edit1.text + 
                         'and note.annee=' + ComboBox1.text + );
     form7.Query1.Active:=true;
     form7.QuickRep1.Preview;
    end;
    
    end.
    
    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2010 à 12:02:19

      Bonjour
      Je ne connais pas delphi7 mais la concaténation me semble suspecte
      form7.query1.sql.add('where etudiant.num_ins=note.num_ins '
                           'and etudiant.num_ins='
      

      Il ne manquerai pas un + entre les 2 chaines de caractères ?
      D'ailleurs pourquoi faire 2 chaines ?
      Sinon peux tu préciser les erreurs ?
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2010 à 12:05:54

        l'erreur se situe quelque part ici:

        form7.query1.sql.add('where etudiant.num_ins=note.num_ins '
                             'and etudiant.num_ins=' + edit1.text + 
                             'and note.annee=' + ComboBox1.text + );
        


        merci
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2010 à 12:09:50

          Ben il t'a dit, il manque une plus entre num_ins ' ligne 1 et 'and ligne 2
          • Partager sur Facebook
          • Partager sur Twitter
            21 décembre 2010 à 12:09:59

            Comme je l'ai dis, il me semble pas nécessaire d'avoir 2 chaines de caractère
            De plus, il y a un + qui traine à la fin de la requête qui me semble pas être nécessaire
            Personnellement je ferai plutôt ça :
            form7.query1.sql.add('where etudiant.num_ins=note.num_ins 
                                  and etudiant.num_ins=' + edit1.text + 
                                 'and note.annee=' + ComboBox1.text );
            

            • Partager sur Facebook
            • Partager sur Twitter
              21 décembre 2010 à 12:11:04

              Citation : sakura18

              l'erreur se situe quelque part ici:

              form7.query1.sql.add('where etudiant.num_ins=note.num_ins '
                                   'and etudiant.num_ins=' + edit1.text + 
                                   'and note.annee=' + ComboBox1.text + );
              



              merci



              form7.query1.sql.add('where etudiant.num_ins=note.num_ins '
                                   'and etudiant.num_ins=' + edit1.text + 
                                   'and note.annee=' + ComboBox1.text + '');
              


              Essaye ca,
              Je connais pas delphi non plus mais a vu d'oeil il manquait les appostrophes
              • Partager sur Facebook
              • Partager sur Twitter
                21 décembre 2010 à 12:20:11

                A priori, il vaut mieux utiliser une requête paramétrée(ParamByName) lorsqu'il y a des variables
                • Partager sur Facebook
                • Partager sur Twitter
                  21 décembre 2010 à 17:23:36

                  Citation : angelo

                  A priori, il vaut mieux utiliser une requête paramétrée(ParamByName) lorsqu'il y a des variables




                  j'ai utilisé (ParamByName) et ça fonctionne.
                  merci pour votre aide.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  requete sql qui plante

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown