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 avec un RecordSet


Sujet :

ASP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut Problème avec un RecordSet
    Bonjour, et bonne année 2007

    J'ai un recordset, et je voudrais le parcourir récurcivement.

    Mon recordSet n'a pas de problème si je le parcours normalement, je n'ai pas de problème.

    Or j'ai une erreure
    ADODB.Recordset error '800a0bcd'

    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    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
    Function Parcours( _
    		ByVal myId, _
    		ByRef rstData)
    
    
    		rstData.Filter = "IDParent = " & myId
    		
    		While not rstData.eof
    			Response.Write cstr(rstData("ID").Value) & "<br>"
    			Parcours rstData("ID").Value, rstData 'Si je ne met pas cette ligne, je n ai pas de probleme			
    			rstData.MoveNext
    		wend	
    		
    		
    
    	End Function
    Merci pour votre aide, tout en vous souhaitant une bonne année 2007

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    La première fois que tu appliques ton filtre sur le recordset, tu ne laisses passer que les enregistrements dont
    Ensuite, tu changes la valeur de myId, et par récurcivité, tu appliques une seconde fois un filtre sur le recordset, mais avec une autre valeur, ce qui te conduit à avoir un recordset vide.

    Imagine que la première fois, myId vaut 10. Après filtrage, il ne reste donc plus que les enregistrements dont IDParent vaut 10. Ensuite, tu modifies la valeur de myId, qui vaut 11 par exemple. Tu ré-appliques un filtre avec cette valeur, mais il n'y a aucun enregistrement dont IDParent vaut à la fois 10 et 11, donc tu as un recordset vide.

    Il faut peut-être rétablir le recordset dans son intégralité avant de réappliquer un second filtre. Voir la constante adFilterNone

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    J'ai modifié le code pour ne pas utiliser rstData.Filter.
    Pourtant j'ai toujours le même bug.

    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
    Function Parcours( _
    		ByVal myId, _
    		ByRef rstData)
     
     
    		rstData.Filter = "IDParent = " & myId
     
    		While not rstData.eof
    			Response.Write cstr(rstData("ID").Value) & "<br>"
                                           If IsNull(rstData("IDParent").Value) = false Then
                                               If  rstData("IDParent").Value = myIdThen
                                                    Parcours rstData("ID").Value, rstData 'Si je ne met pas cette ligne, je n ai pas de probleme			
                                               End If
                                           End If
     
    			rstData.MoveNext
    		wend	
     
     
     
    	End Function

  4. #4
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Il semble que le filtre soit toujours là...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Au lieu d'utiliser le While, j'utilise avec un For
    avec la proprité rstData.AbsolutePosition = i
    Et maintenatn c'est bon.

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

Discussions similaires

  1. Problème avec un recordset
    Par five1966 dans le forum VBA Access
    Réponses: 14
    Dernier message: 26/12/2008, 19h28
  2. Problème avec un recordset
    Par david71 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 08/02/2008, 15h53
  3. Problème avec adodb.recordset
    Par Pierre Fauconnier dans le forum VB.NET
    Réponses: 4
    Dernier message: 07/05/2007, 16h43
  4. Problème avec le recordset
    Par mademoizel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 04/03/2007, 13h28
  5. Problème avec ADODB.Recordset
    Par Edouard Kaiser dans le forum ASP
    Réponses: 13
    Dernier message: 09/08/2005, 18h54

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