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

Requêtes et SQL. Discussion :

Problème de parenthèses dans un String


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Problème de parenthèses dans un String
    Bonjour à tous!

    Voilà mon problème, assez bizarre je trouve.

    Je programme sous java un accès à une BDD Access. Ma requête est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT mission, SUM(starts) FROM database WHERE mission='xxxx' SORT BY mission
    Et quand mon 'xxxx' contient des parenthèses, ca plante tout et j'ai l'erreur "Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée 'MISSION' comme une partie de la fonction d'agrégat."
    Je suis sur que c'est au niveau des parenthèses que ca coince: le même 'xxxx' sans parenthèses fonctionne, et avec ça me plante...

    J'espère que vous pourrez m'aider!!

    Merci par avance

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 929
    Points : 4 847
    Points
    4 847
    Par défaut
    Je ne connais pas Java, mais si le monsieur te dit qu'il faut un GROUP BY, essaie déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT mission, SUM(starts) FROM database WHERE mission='xxxx' GROUP BY mission

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Oui oui, au temps pour moi...
    C'est bien "GROUP BY" que j'ai marqué, je me suis trompé en recopiant dans mon message précédent.

    C'est vraiment au niveau des parenthèses que ca bloque: si je les enlèves de la requête et de la BDD, ca fonctionne

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Bonjour. Bienvenue sur nos forums.

    Quelles est la nature du champ Mission, texte, numérique?

    Si c'est du numérique, il ne faut pas les '' pour encadrer la valeur, mais tu ne peux alors passer que du numérique.

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Non non, c'est bien du texte...

    Si je mets mission='Ferry' ça fonctionne; si je mets mission='Aeromedical Evacuation (AME)' paf...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Essayes manuellement avec un texte en doublant les parenthèses pour voir ce que cela donne (double la parenthèse entrante et double celle sortante).

    C'est juste un test.

    Philippe

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Négatif... si je double les parenthèses ça me fait la même erreur.

    Par contre, si je mets ''( et ''), ça a l'air de fonctionner (mais du coup, je perds tout l'intérêt de mon champ de texte qui se retrouve modifié).

    A noter que lorsque j'insère ce champ texte avec des parenthèses dans la BDD, je n'ai aucun problème dans la requete avec le code:
    INSERT INTO database (mission) VALUES ('Aeromedical Evacuation (AME)')

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Merci Philippe pour l'idée. Peut-être que la parenthèse est un caractère réservé dans JAVA...
    Auquel cas, si doubler la parenthèse ne donne rien, tu peux peut-être tenter \(

    Tu aurais peut-être plus de chances sur le forum java "comment créer une chaine de caractères avec des parenthèses?"

  9. #9
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Ahah, merci du conseil, mais ça n'a rien à voir avec le Java... j'affiche ma requête pour vérifier si elle est bien correcte (c'est celle que j'ai copié-collé), ce qui est apparemment le cas, et après je la balance sous Access qui là ne l'aime pas...
    Les parenthèses n'étant de plus pas des caractères spéciaux en java, aucun risque...

    Petit update néanmoins: si je mets dans ma requête SQL \( et \), ca marche comma avec ''( et '')

    Je sais pas si vous suivez, mais moi je rame complètement!! Pourquoi donc accepte-t-il les \( \) ''( et '') et pas simplement ( et ) dans le SELECT?!
    Comme je vous ai dit, dans le INSERT, aucun problème!!

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Ce ne sont peut-être pas les mêmes parenthèses...

    Pour le Select, la chaine va chercher la valeur de mission dans une table ou une liste déroulante?

    Il faudrait pouvoir afficher les codes ascii pour voir si c'est idem au select qu'à l'insert...

    J'dis ça, j'dis rien, mais j'le dis quand même...

  11. #11
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Interessant comme idee... Mais ca n'expliquerait pas pourquoi \( et ''( fonctionnnent. De plus je vois pas pourquoi java changerait le codage des caracteres au milieu d'un programme.
    Je vais qd mm essaye, j'ai rien a perdre!

    Pour le Select, le String est dans un tableau que je remplis a la main...

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Cela pourrait expliquer pour quoi une fonctionne et pas l'autre. Il faut bien qu'il y ait une explication.

    Si la donnée Aeromedical Evacuation (AME) a été saisie ou amenée en utilisant une autre page de code, il se pourrait que cela pose problème là où les "vraies" parenthèses que tu saisis passent...

Discussions similaires

  1. [C#] Problème double quote dans string
    Par tafkap dans le forum C#
    Réponses: 2
    Dernier message: 30/08/2008, 19h36
  2. problème avec les sauts de ligne dans une string
    Par hexdoc dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2008, 15h28
  3. Parenthèses dans une variable de type String
    Par Gringo59 dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/01/2008, 18h05
  4. [RegEx] recherche de parenthèse dans string ereg?
    Par adr22 dans le forum Langage
    Réponses: 1
    Dernier message: 06/11/2007, 09h45
  5. Problème avec MetaFilenameFilter (slash dans des String)
    Par Sylver--- dans le forum Langage
    Réponses: 6
    Dernier message: 14/08/2007, 14h16

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