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 :

Faire une requête à base d'un Recordset


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 24
    Par défaut Faire une requête à base d'un Recordset
    Bonjour,

    J'ai une requête qui est imbriquée plusieurs fois dans d'autres requêtes, et cela ralenti gravement l'execution du code.

    Est il possible de faire une requête à base des enregistrement d'un RS.

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oRs.Execute("select id from ma_table where conditions")
    et de la faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oRs2.Execute("select mon_champ from autre_table where id in oRs2(""id"")")
    ou un truc du genre (mais evitant le for each...next) parceque j'ai plus de 1000 enregistrements et que j'ai pour chaque cas une dizaine de requetes à faire..

    Merci à vous et joyeux noel

  2. #2
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Si une jointure sql, n'est pas appropriée tu peux imbriqués des RS
    Ex
    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
     
    oRS1 = Server.createobject("ADODB.recordset")
    oRS2 = Server.createobject("ADODB.recordset")
     
    SQL1 = "Select c1 from t1 where test = a"
    oRS1.open SQL1, strconnexion
     
    Do while not oRS1.eof
           SQL2 = "Select c1 from t2 where test = '"& oRS1("test") &"'"
           oRS2.open SQL2, strconnexion
     
           Do while not oRS2.eof
    response.write oRS1("test") & "------ " & oRS2("test") & "<BR>"
          oRS2.Movenext
          loop
    oRS1.Movenext
    loop

  3. #3
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 24
    Par défaut
    Avec une bonne dizaine de requêtes, ça me fait qqch de beaucoup trop long en temps d'execution...

  4. #4
    Membre émérite
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Par défaut
    Je peux dire une co...rie ? mais pourquoi ne pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rs2.Execute("select mon_champ from autre_table where id in (select id from matable2 where mesconditions);")
    ça fonctionne très bien.

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/11/2008, 19h48
  2. [SimpleXML] comment faire une requête basée sur un namespace d'un attribut ?
    Par hansaplast dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/09/2007, 01h18
  3. [MySQL] Faire une requête recourant à deux bases de données
    Par bourvil dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/04/2006, 15h35
  4. [Requête] Faire une requête imbriquée?
    Par sekiryou dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2004, 22h52

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