C koi ce bug à la con ?

C koi ce bug à la con ? - ASP - Programmation

Marsh Posté le 21-08-2002 à 01:18:32    

Code :
  1. do while not rsAffluent.EOF
  2. affluent = rsAffluent("HTTP_REFERER" )
  3. response.Write "<tr><td>" & affluent & "</td><td>" & rsAffluent("NB" ) & "</td><td>"
  4. dur = 0
  5. nb = 0
  6. nbT = 0
  7. rsAffluent2.MoveFirst()
  8. do while not rsAffluent2.EOF and not rsAffluent2("HTTP_REFERER" ) = affluent
  9.  rsAffluent2.MoveNext()
  10. loop
  11. if not rsAffluent2.EOF then
  12. ' CA MERDE A LA SECONDE EGALITE DE LA LIGNE SUIVANTE :
  13.  do while not rsAffluent2.EOF and rsAffluent2("HTTP_REFERER" ) = affluent
  14.   dur = dur + rsAffluent2("DUR" )
  15.   nbT = nbT + 1
  16.   if rsAffluent2("DUR" ) = 0 then
  17.    nb = nb + 1
  18.   end if
  19.   rsAffluent2.MoveNext()
  20.  loop
  21.  response.Write cint((nb / nbT) * 1000) / 10 & " %</td><td>" & buildTime(dur / nbT) & "</td></tr>"
  22. else
  23.  response.Write "N/A</td><td>N/A</td></tr>"
  24. end if
  25. rsAffluent.MoveNext
  26. loop


 
J'ai une superbe erreur très explicite :
 
[quote]error '80020009'  
Exception occurred.  
 
/statistics/contents/affluent.asp, line 66[quote]
 
Ca marche tout le temps, sauf dans certains cas :??:
 
Voici ce que j'ai dans le cas où ça plante :
 
rsAffluent contient :
HTTP_REFERER                             NB
http://forum.hardware.fr/forum2.php3 5
http://www.manga-torii.com/statistics/default.asp 1
http://www.zozoll-online.com/forum/topic.htm 1
 
rsAffluent2 contient :
HTTP_REFERER                             DUR
http://www.zozoll-online.com/forum/topic.htm 78
http://www.manga-torii.com/statistics/default.asp 3073
http://forum.hardware.fr/forum2.php3 230
http://forum.hardware.fr/forum2.php3 146
http://forum.hardware.fr/forum2.php3 27
http://forum.hardware.fr/forum2.php3 23
http://forum.hardware.fr/forum2.php3 25
 
:??:

Reply

Marsh Posté le 21-08-2002 à 01:18:32   

Reply

Marsh Posté le 21-08-2002 à 01:24:27    

Pour résumer, l'algo en pseudo-code :
 

Code :
  1. Tant que pas la fin de rsAffluent
  2.    j'écrit rsAffluent("HTTP_REFERER" ) et rsAffluent("NB" )
  3.    j'initialise le nombre de visites nulles à 0
  4.    j'initialise le nombre de visites totales à 0
  5.    j'initialise la durée des visites à 0
  6.    je retourne au début de rsAffluent2
  7.    tant que je suis pas à la fin de rsAffluent2 ou que rsAffluent2("HTTP_REFERER" ) = rsAffluent("HTTP_REFERER" )
  8.        j'avance dans rsAffluent2
  9.    fin tant que
  10.    si je ne suis pas à la fin de rsAffluent2
  11. ' CA MERDE A LA SECONDE EGALITE DE LA LIGNE SUIVANTE :
  12.       tant que je ne suis pas à la fin de rsAffluent2 ou que rsAffluent2("HTTP_REFERER" ) n'est plus égal à rsAffluent("HTTP_REFERER" )
  13.          j'avoute la durée de la visite en cours au total des visites
  14.          j'incrémente le nombre de visites totales
  15.          si la visite à une durée de 0 secondes alors j'incrémente le nombre de visites à une page
  16.          j'avance dans rsAffluent2
  17.      fin tant que
  18.      j'affiche le ration des visites à une page et la durée 
  19.      j'avance dans rsAffluent
  20. fin tant que


Message édité par MagicBuzz le 21-08-2002 à 01:26:21
Reply

Marsh Posté le 21-08-2002 à 01:28:20    

tiens, je viens de trouver comment faire une grosse optimisation...
 
(rsAffluent est totalement inutile en fait :D)
 
donc pas besoin de continuer à ce prendre la tête :D

Reply

Marsh Posté le 21-08-2002 à 01:43:50    

Alors ça, c'est la meilleure !
 

Code :
  1. do while not rsAffluent.EOF
  2. affluent = rsAffluent("HTTP_REFERER" )
  3. dur = 0
  4. nb = 0
  5. nbT = 0
  6. do while not affluent.EOF and rsAffluent("HTTP_REFERER" ) = affluent  ' Ligne 46
  7.  nbT = nbT + 1
  8.  dur = dur + rsAffluent("DUR" )
  9.  if rsAffluent("DUR" ) = 0 then
  10.   nb = nb + 1
  11.  end if
  12.  affluent.movenext
  13. loop
  14. response.Write "<tr><td>" & affluent & "</td><td>" & nbT & "</td><td>" & cint((nb / nbT) * 1000) / 10 & " %</td><td>"
  15. if nbT <> nb then
  16.  response.Write buildTime(dur / (nbT - nb))
  17. else
  18.  response.Write "N/A"
  19. end if
  20. response.Write  "</td></tr>"
  21. loop
  22. rsAffluent.Close()
  23. set rsAffluent = nothing


 
Mon RS contient :
 

Code :
  1. http://forum.hardware.fr/forum2.php3 230
  2. http://forum.hardware.fr/forum2.php3 146
  3. http://forum.hardware.fr/forum2.php3 27
  4. http://forum.hardware.fr/forum2.php3 23
  5. http://forum.hardware.fr/forum2.php3 25
  6. http://forum.hardware.fr/forum2.php3 4469
  7. http://forum.hardware.fr/forum2.php3 19
  8. http://forum.hardware.fr/forum2.php3 33
  9. http://www.manga-torii.com/statistics/default.asp 3192
  10. http://www.manga-torii.com/statistics/default.asp 0
  11. http://www.manga-torii.com/statistics/default.asp 18
  12. http://www.manga-torii.com/statistics/default.asp 2332
  13. http://www.manga-torii.com/statistics/default.asp 7051
  14. http://www.zozoll-online.com/forum/topic.htm 78
  15. http://www.zozoll-online.com/forum/topic.htm 0


 
Erreur :
 

Code :
  1. Microsoft VBScript runtime error '800a01a8'
  2. Object required: 'http://www.manga-tor'
  3. /statistics/contents/affluent.asp, line 46


Message édité par MagicBuzz le 21-08-2002 à 01:44:32
Reply

Marsh Posté le 21-08-2002 à 01:56:01    

MagicBuzz est un polio et il le revendique...

Reply

Marsh Posté le 21-08-2002 à 02:13:59    

salut toi  :hello:  
 
Desoler peut pas taider, conner pas du tout asp :/

Reply

Marsh Posté le 21-08-2002 à 02:33:21    

Super topic inutile aussi :D
 
Pas évident de tester .EOF sur une chaîne de caractère :D
 

Reply

Marsh Posté le 21-08-2002 à 02:34:55    

RELAX Sky a écrit a écrit :

le post super utile  :lol:  




Je dirais de meme pour toi  :lol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed