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 Discussion :

Problème requête SQL dans page ASP


Sujet :

ASP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Problème requête SQL dans page ASP
    Bonjour à tous,

    j'ai effectué la requête ci-dessous, qui me permet de voir les clients qui ont commandé ainsi que le nombre de fois qu'ils ont commandé. Je ne comprend pas parce que cette requête marche très bien sous Access, mais pas lorsque je l'inclus dans la page ASP. j'obtiens l'erreur :

    ADODB.Recordset error '800a0cc1'
    Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.

    /tdb/Clients/StatsClients.asp, line 29


    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
    <body>
      <%
      SQL="SELECT CLIENT.ID_CLIENT, CLIENT.NOM, CLIENT.PRENOM, COMMANDE.ID_CLIENT, COMMANDE.VALIDE_CDE, Count(COMMANDE.ID_COMMANDE) AS CompteDeID_COMMANDE"
      SQL=SQL & "FROM CLIENT INNER JOIN COMMANDE ON CLIENT.ID_CLIENT = COMMANDE.ID_CLIENT"
      SQL=SQL & "GROUP BY CLIENT.ID_CLIENT, CLIENT.NOM, CLIENT.PRENOM, COMMANDE.ID_CLIENT, COMMANDE.VALIDE_CDE"
       SQL=SQL & "HAVING (((COMMANDE.ID_CLIENT) Is Not Null) AND ((COMMANDE.VALIDE_CDE)=-1))"
       SQL=SQL & "ORDER BY Count(COMMANDE.ID_COMMANDE) DESC"
     
     	OpenConn
    	OpenRs rsSC, SQL
     
     
      do while not rsSC.eof%>
    	<%=rsSC("COMMANDE.ID_CLIENT")%><br>
    <%rsSC.movenext
    loop
    CloseRs rsSC%>
    </body>
    <%CloseConn%>
    Si quelqu'un à une idée, merci

  2. #2
    Membre habitué Avatar de Cobaye
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 120
    Points : 154
    Points
    154
    Par défaut
    si tu fait un response.write de ta requete tu vera les erreurs, avec ta requete sur plusieurs lignes et les concaténations tu a viré les espaces
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AS CompteDeID_COMMANDE" 
      SQL=SQL & "FROM CLIENT
    qui donnera
    AS CompteDeID_COMMANDEFROM CLIENT

    manque l'espace avant le FROM
    Pro : http://www.ohweb.fr -> Spécialiste en développement de site e-commerce, Expert Prestashop
    perso : http://www.olecorre.com -> un dico de termes informatiques


    J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Cobaye
    si tu fait un response.write de ta requete tu vera les erreurs, avec ta requete sur plusieurs lignes et les concaténations tu a viré les espaces
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AS CompteDeID_COMMANDE" 
      SQL=SQL & "FROM CLIENT
    qui donnera
    AS CompteDeID_COMMANDEFROM CLIENT

    manque l'espace avant le FROM
    ok, merci.
    je viens donc d'essayer sans les espaces, j'ai également essayé de remplacer le inner join par l'ancienne méthode (where CLIENT.ID_CLIENT = COMMANDE.ID_CLIENT), dèsfois que ma version sql ne me permette pas ça. j'ai également fait un :
    response.write(rsSC("COMMANDE.ID_CLIENT"));
    mais apparement, il n'aime pas trop !!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    sinon, j'ai retrouvé une erreur, apparement, j'ai oublié le ";" à la fin de la requête, mais ça ne marche tjs pas !!

  5. #5
    Membre habitué Avatar de Cobaye
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 120
    Points : 154
    Points
    154
    Par défaut
    redonne ton code avec toutes les corrections, ca facilitera la relecture
    Pro : http://www.ohweb.fr -> Spécialiste en développement de site e-commerce, Expert Prestashop
    perso : http://www.olecorre.com -> un dico de termes informatiques


    J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    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
      <%
      SQL="SELECT CLIENT.ID_CLIENT, CLIENT.NOM, CLIENT.PRENOM, COMMANDE.ID_CLIENT, COMMANDE.VALIDE_CDE, Count(COMMANDE.ID_COMMANDE) AS CompteDeID_COMMANDE"
      SQL=SQL & " FROM CLIENT INNER JOIN COMMANDE ON CLIENT.ID_CLIENT = COMMANDE.ID_CLIENT"
      SQL=SQL & " GROUP BY CLIENT.ID_CLIENT, CLIENT.NOM, CLIENT.PRENOM, COMMANDE.ID_CLIENT, COMMANDE.VALIDE_CDE"
       SQL=SQL & " HAVING (((COMMANDE.ID_CLIENT) Is Not Null) AND ((COMMANDE.VALIDE_CDE)=-1))"
       SQL=SQL & " ORDER BY Count(COMMANDE.ID_COMMANDE) DESC;"
     	OpenConn
    	OpenRs rsSC, SQL
      do while not rsSC.eof%>
    	<%=rsSC("COMMANDE.ID_CLIENT")%><br>
     
     
    <%rsSC.movenext
    loop
    CloseRs rsSC
    CloseConn%>
    et l'erreur est :

    ADODB.Recordset error '800a0cc1'
    Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.

    /tdb/Clients/StatsClients.asp, line 35

    Pour information, cette requête, je l'ai d'abord crée sous access, et là, c'est un simple copier-coller.

    MERCI

  7. #7
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Un des champ de tes tables est sans doute mal orthographié dans ta requete
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par totoche
    Un des champ de tes tables est sans doute mal orthographié dans ta requete
    c'est ce que je me suis dit mais vu que j'ai fait un copier-coller de la requête d'access (qui marche très bien), je ne vois pas pourquoi les champs ne corresponderaient pas.
    le problème peut il venir du fait que ma requête n'est pas bien interpreté parce que genre INNER JOIN, il ne connait pas ?

    merci

  9. #9
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    OpenConn
    OpenRs rsSC, SQL
    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsSC.open OpenConn, SQL, 1
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par totoche
    OpenConn
    OpenRs rsSC, SQL
    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsSC.open OpenConn, SQL, 1
    non, ça ne marche pas non plus.
    Pour faire cette requête dans la page ASP, je me suis inspiré de ce qu'avait fait la personne qui était avant moi, et la syntaxe resemble, donc je vois vraiment pas d'où ça peut venir.

    Extrait d'un code qui marchait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <%if request("Valeur")<>"" then
    	SQL=      "SELECT COMMANDE.*, Pays.NomPays FROM COMMANDE LEFT JOIN Pays ON COMMANDE.IDPAYS_L = Pays.IDPays"
    	SQL=SQL & " WHERE [" & request("Champ") & "]" & request("Oper") & request("Valeur")
    	SQL=SQL & " ORDER BY ID_COMMANDE DESC;"
    	OpenConn
    	OpenRs rsCde, SQL
    	do while not rsCde.eof%>

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut
    Salut,

    CLIENT est peut etre un mot reservé Acces :-/

    Essayes d'entourer les noms de tables avec des crochets :

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Gwenn
    Salut,

    CLIENT est peut etre un mot reservé Acces :-/

    Essayes d'entourer les noms de tables avec des crochets :
    je viens d'essayer aussi, et ça ne marche pas non plus. par contre, j'ai donc essayé quelque chose de plus simple et ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      <%
      SQL="SELECT ID_CLIENT"
      SQL=SQL & " FROM COMMANDE"
      SQL=SQL & " WHERE VALIDE_CDE=-1"
     	OpenConn
    	OpenRs rsSC, SQL
      do while not rsSC.eof%>
    	<%=rsSC("ID_CLIENT")%><br>
     
     
    <%rsSC.movenext
    loop
    CloseRs rsSC
    CloseConn%>
    mais bon, ça résout pas mon problème quand meme !!

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    j'avance et je crois avoir trouver d'où venait le problème, c'est dans le <%=rsSC("COMMANDE.ID_CLIENT")%>, si je fais juste un <%=rsSC("ID_CLIENT")%>, ça marche !!

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut
    Ha mais oui bien sur, puisque ton recordset va te creer une colonne NomTAble.NomChamps seulement dans le cas ou tu as deux colonnes qui portent le meme nom, c'etait donc ca

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    en tout cas, merci à tous pour votre aide et votre disponibilité !!

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

Discussions similaires

  1. [XL-2007] Problème requête sql dans vba
    Par Alex70 dans le forum Excel
    Réponses: 1
    Dernier message: 21/08/2013, 11h48
  2. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  3. Problême requête SQL dans access..Erreur 3079
    Par DavidGG dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/01/2008, 17h48
  4. Lire requête access dans page ASP
    Par wanou44 dans le forum ASP
    Réponses: 3
    Dernier message: 19/10/2006, 12h05
  5. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58

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