JAVA : Problème de requête

Salut à tous,

Voilà j'ai un problème avec une requête d'ajout , je sais il y a rien de compliqué mais là je sais pas pourquoi ca foire, en plus le message d'erreur est pas très précis...

mon code :

String ajout= "INSERT INTO Sortie (Ref,Marque,Categorie,Couleur,Description,Date,Service,Quantite) VALUES ("+"'"+refarticle+"','"+marquearticle+"','"+categoriearticle+"','"+couleurarticle+"','"+descriptionarticle+"','"+zonedate.getText()+"','"+choixservice.getSelectedItem()+"',"+zonequantite.getText()+");";

mon erreur :

erreur
[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO.

D'avance merci

13 réponses

  1. bonjour,
    ça correspond à quoi dans ton programme ça : "Sortie (Ref,Marque,Categorie,Couleur,Description,Date,Service,Quantite)" ?
    1. ca veut dir que j'insere dans la table sortie dans les colonnes (...,...,...,,...etc)
      1. Contributeur
        essai un truc plutot genre comme ca :

        String ajout= "INSERT INTO Sortie (Ref,Marque,Categorie,Couleur,Description,Date,Service,Quantite) VALUES ("'"+refarticle+"','"+marquearticle+"','"+categoriearticle+"','"+couleurarticle+"','"+descriptionarticle+"','"+zonedate.getText()+"','"+choixservice.getSelectedItem()+"','"+zonequantite.getText()+"')";

        ++
        1. Je viens d'essayer mais ca marche pas

          j'ai bien vérifier le nom des colonnes et des variables de mon formulaire mais rien à faire ca marche pas .....

          C'est bizaaaare cette histoire là
          1. Contributeur
            c toujours la meme erreur qu'il te met ?
        2. Salut,

          les champs de ta table sont ils bien tous des varchar ? aucun int ou number ?
          le point-virgule est-il nécessaire ?
          1. mon code :

            String ajout= "INSERT INTO Sortie (Ref,Marque,Categorie,Couleur,Description,Date,Service,Quantite) VALUES ('"+refarticle+"','"+marquearticle+"','"+categoriearticle+"','"+couleurarticle+"','"+descriptionarticle+"','"+zonedate.getText()+"','"+choixservice.getSelectedItem()+"',"+zonequantite.getText()+")";

            les colonnes de ma tables sont toutes au format Text sauf la derniere qui est en Numerique

            mon erreur :

            erreur
            [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO.
            1. Contributeur
              Et est ce que tu as essayé de l'insérer directement dans l'interface de ton SGBD en mettant cette requête SQL? Ce sera plus facile pour savoir d'ou vient l'erreur
              1. Contributeur
                OUI ca sera plus simple pour savoir si la requete est bonne ou non !
            2. je ne vois pas très bien ce que tu veux dire ...
              tu peux m'expliquer un peu plus stp???
              1. Contributeur
                tu utilise access comme base de données. Et bien, tu ouvre ton fichier access et tu tape dans la fenêtre SQL
                Insert Into .....
                Comme ça peut être qu'ils te donneront plus de détail sur l'erreur!
            3. Contributeur
              eh bien par exemple si tu utilise MySQL, tu as la possibilité dans le module MyAdmin d'éxécuter des requetes sur ta base, requetes que tu écrit comme si tu était dans ton programme mais dans une zone de texte prévue à cet effet, tu éxécute et le reste est fait tout seul ! Le résultét, et donc les éventuelles erreurs sont affichées et là tu peux voir si ta requete est bonne ou non.

              jE NE SAIS PAS QUEL sgbd TU UTILISE mais s'il n'y as pas le même fonctionnalité qqpart c'est qu'il y a un pb !

              Bonne chance ++
              1. J'ai le meme probleme,
                Mon instruction marche sous access, mais a partir de java jai le message d'erreur :
                Erreur de syntaxe dans l'instruction INSERT INTO.

                Je ne comprends vraiment pas.
                Merci d'avance si qqun connait la reponse..........
                1. Contributeur
                  Alors c'est que ca vient de tes pilotes ODBC ou alors du code quand tu execute ta requete, fais donc voir le reste du bout de code