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 :

Probleme d'accès aux données récupérées dans une requête


Sujet :

ASP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut Probleme d'accès aux données récupérées dans une requête
    Bonsoir,

    Tout d'abord, je tiens à préciser que je suis nouveau ici et que je ne connais pas les coutumes. Je tiens à m'excuser par avance si j'en ai oubliées ou ommises. Par ailleurs, je tiens aussi à préciser que j'ai effectué une recherche sur le forum pour trouver une réponse à ma question.

    Alors voilà : je crois que j'ai un gros souci d'accès à mes données : je dois récupérer les joueurs français (de football) évoluant en premier league (championnat d'angleterre) en 2007. Ma base est telle que d'un coté je dois sélectionner les joueurs français, et trouver leurs équipes respectives (1700 champs), et de l'autre je trouve les équipes du championnat anglais (20 champs).

    Le souci intervient quand je fais le croisement des 2. je dois parcourir, pour les 1700 équipes des joueurs (par leur id), les 20 équipes de la compétition et si il y a un résultat (une table CompEquipe prend une Competition et une équipe par leurs id respectifs...) retourner "oui" tout simplement.

    Voilà mon soucis, il concerne le temps d'exécution de la requete : si je remplace l'id des 1700 équipes trouvé par la requete, par un id bidon en dur, mon exécution dure 40 sec (évidemment la requete est qd mm executée :p). Si je mets, dans le MEME code, l'id généré, elle dure 2mn...

    Ma réflexion est lancée sur le fait que pour accéder au 1600ème id, je dois parcourir les 1599 d'avants avant de trouver le bon, et ce à chaque fois...
    Donc je voudrais supprimer, après lecture de l'id, l'élément du résultat de ma requete. Sauf que je n'arrive pas à le faire (instruction delete ?? ne marche pas...)

    Mon code ressemble à :

    'ces lignes sont de mémoire : le code est au boulot et je n'y suis pas là... désolé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL = "select idEquipe from ....."
    Set RSCompetition  = Server.CreateObject("ADODB.Connection")
    RSCompetition.LockType=3
    RSCompetition.Open
     
    do until RSCompetition.eof
    idTrouve=RSCompetition(0)
    ...
    (RSCompetition.delete ???)
    RSCompetition.movenext
    loop
    en gros ma boucle ressemble à cela, et je voudrais donc supprimer du RESULTAT de ma requete la premiere ligne apres lecture de celle ci, pour pouvoir accélérer mes performances en accès.

    Merci d'avance à tous ceux qui prendront au moins le temps de lire ce roman !!! Mais avec mon responsable on a regardé pdt 1h30, croyez moi je suis tétu, mais là je n'ai pas trouvé. Merci!

    Alex

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    J'espère avoir tout compris.

    Pour une requête SELECT, tu devrais utiliset un recordset.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set RSCompetition = Server.CreateObject("ADODB.Recordset")
    Pour supprimer un enregistrement, utilise un object Connetion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set RSCompetition = Server.CreateObject("ADODB.Connection")
    ...
    txtSQL = "delete from matable where Id = " & RSCompetition(0)
    Et tu utilises la commande Execute

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    Ce n'est pas tout à fait cela. Tu me proposes si j'ai bien compris de supprimer la ligne lue de la base de données n'est-ce pas ? Tandis que je voudrais la supprimer du "fichier" résultat de ma requete. Le code exact est :

    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
    SQL = "select * from ... "
    Set SQLStmt = Server.CreateObject("ADODB.Command")
    Set RSGars= Server.CreateObject ("ADODB.Recordset")
    SQLStmt.CommandText = texte
    SQLStmt.CommandType = 1
    RSGars.LockType=3
    Set SQLStmt.ActiveConnection = DBase
    RSGars.Open SQLStmt
     
    While NOT RSGars.eof
          idTrouve = RSGars(0)
          fonction(idTrouve)
          'ici je voudrais supprimer RSGars(0) pour que le prochain champ à lire soit en tete de "fichier"
          RSGars.movenext
    Wend

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Ca veut dire que dans le résultat de ta requête, tu veux supprimer le premier champ ?

    Si c'est ça, tu ne le mets pas dans le select.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    pas le premier champ, mais le premier de mes 1700 résultats, pour qu'au tour de boucle suivant, le résultat n°2 soit au dessus des autres et ainsi de suite pour avoir à chaque fois un accès direct au résultat numéro i de ma requete...

    par exemple :

    Si au Tour de boucle n°1 ma requete a sélectionné les id suivants :
    IdEquipe
    1
    5
    7
    8
    14

    Je veux, au tour de boucle n°2 :
    IdEquipe
    5
    7
    8
    14

    Puis au numéro 3 :
    7
    8
    14

    etc, de telle façon à ce que je puisse accéder au résultat de ma requête à la ligne i en instantané !

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    On va essayer d'être plus clair.

    Tu fais une requête qui te retourne une liste d'enregistrements.

    Ensuite tu veux faire une boucle pour parcourir cette liste, et à chaque tour, tu veux récupérer la même liste qu'au tour précédent, mais sans la première valeur ?

    J'ai compris ou pas ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    Re,

    Complètement désolé de ne pas avoir pu répondre plus tôt. C'est exactement cela. Le but étant évidemment de gagner un maximum de temps par rapport à l'accès à la donnée dans ma liste de résultats.

    As-tu une solution ? Merci !

Discussions similaires

  1. [WD15] Probleme d'accés aux données dans Sql Serveur 2012.
    Par galsen.quebec dans le forum WinDev
    Réponses: 3
    Dernier message: 23/10/2013, 09h25
  2. probleme d'acces aux données dans IIS
    Par anikon dans le forum ASP.NET
    Réponses: 5
    Dernier message: 13/09/2008, 17h16
  3. Accès aux données contenues dans une Iframe
    Par Jérémy Lefevre dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/10/2007, 11h24
  4. Probleme d'acces aux données d'un JTable
    Par oOoOuuhmAn dans le forum Composants
    Réponses: 3
    Dernier message: 07/05/2006, 12h54
  5. Probleme d'acces aux données lors d'une de jointure
    Par FlyByck dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/12/2005, 13h59

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