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

ASP.NET Discussion :

Ponctuation dans la requête?


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Par défaut Ponctuation dans la requête?
    Bonjour,
    Je ne comprends pas pourquoi ma variable thisArray(i) passe dans le Response.Write, mais pas dans la requête...

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     <%
     
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open DSN_BASE
     
    thisArray = Array("0 Généralités","1 Philosophie","2 Sciences religieuses","3 Sciences sociales, droit","5 Sciences exactes","6 Sciences appliquées","7 Beaux-arts, divertissements","8 Langues et littératures","9 Archéologie, géographie, histoire") 
     
    For i = 0 To UBound(thisArray)
     
    'thisArray(i) pose problème dans la requête!!!
     
    SQL = "SELECT * FROM T_numerisation where type2 like 'livre' and cdu like '"&thisArray(i)&"' and utilisation like 'externe' and url is not null order by intitule, partie"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open SQL, conn
     
    'il passe très bien ici!!!!!
    response.Write("<h2>") &(thisArray(i)) &("</h2><br>")
     
    rs.MoveFirst
    do while Not rs.eof
    response.Write(rs("intitule")) &("<br>")
     
    rs.MoveNext
    loop
     
    Next
     
    rs.close
    set rs=nothing
    conn.close
    set conn=nothing 
     
    %>
    J'ai essayé plusieurs variantes mais aucune ne prend.
    Merci d'avance de vos réponses, et bonne journée.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    C'est quel langage ? Il faudrait s'adresser au forum du langage plutôt qu'au forum MySQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Par défaut
    euh, j'avais l'impression d'être dans le forum SQL, aurais-je rippé sur une peau de banane?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Par défaut
    Ceci dit, c'est avec ASP.
    La dernière fois que j'ai envoyé une question SQL sur le forum ASP, on m'a prié d'aller sur le forum SQL... Comme je suis plutôt diletante, je n'apprécie sans doute pas toujours très précisément le groupe de discussion vers lequel je dois me tourner. Désolé.

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    Sur la trentaine de lignes de code que tu présentes, une seule contient une requête SQL, qui semble bien construite d'un point de vue purement SQL.
    Ton erreur provient sans doute d'une autre partie de ton code.
    As-tu essayé d'afficher le texte de ta requête avant son exécution, voire utiliser cette requête dans un interpréteur de requête indépendant de ton code ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Par défaut
    Et bien malheureusement, c'est bien cette portion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    and cdu like '"&thisArray(i)&"'
    qui pose problème, car si je la retire, tout se passe bien...

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Le problème vient sans doute de la concaténation de la requête SQL et de la variable &thisArray(i) à l'intérieur de la variable SQL du programme en ASP.

    C'est donc un problème de mélange qui concerne plus ASP que le langage SQL.

    Ceci étant dit, dans ta requête, tu as plusieurs LIKE 'quelque_chose' qui sont équivalents à = 'quelque_chose'.
    LIKE s'emploie en principe avec le caractère générique %. La condition de restriction ci-dessous donnera toutes les lignes où la colonne 'col' comporte un texte dans lequel est inclus le mot 'toto' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE col LIKE '%toto%'
    La requête retournera aussi bien 'toto' que 'tititoto' ou 'tototutu' ou ''tititototutu' ou même avec des espaces, chiffres et autres signes, du moment qu'il y a 'toto'.

    Si tu retires les %, comme dans ta requête, autant faire ceci :
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Par défaut
    ok, je regarde encore et vous redis. A+

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Bonjour,
    Citation Envoyé par al1_24 Voir le message
    As-tu essayé d'afficher le texte de ta requête avant son exécution, voire utiliser cette requête dans un interpréteur de requête indépendant de ton code ?
    Je n'ai pas vu de réponse à cette question, c'est pourtant sans doute comme ça que tu règleras ton problème.
    Montre nous le texte de la requête si tu ne vois pas d'où vient le problème.

    Il nous faudrait aussi plus d'info si la requête te semble correcte, au moins le type de la colonne cdu, et un eventuel message d'erreur.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Par défaut
    Salut,
    Si je remplace dans ma requête '"&(thisArray(i)&"' par une valeur du tableau comme par exemple: cdu like '0 Généralités', ça fonctionne parfaitement, mais évidemment, ce qui s'affiche n'est pas ce que je veux...

  11. #11
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    C'est étonnant que personne ne t'ai encore dit d'utiliser des requêtes paramétrées!
    Non seulement, les concaténations sont sources d'erreurs mais en plus elles ne sont pas sécurisées.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Par défaut
    Ben voilà, j'ai remplacé "like" par =, et tout baigne...
    Désolé pour le dérangement, et merci à tous les contributeurs.
    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Ponctuation dans une requête
    Par pasbonte dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/01/2009, 00h11
  2. erreur dans votre requête SQL.Ponctuation invalide @ 48
    Par Artoisvert dans le forum Débuter
    Réponses: 0
    Dernier message: 11/07/2008, 02h12
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. [SQL] Renommer un champ dans une requête
    Par martonpylon12 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/11/2003, 01h59
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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