Salut,
effectivement c'est une solution :-)
Si tu récupères beaucoup d'enregistrement tu peux aussi essayer d'utiliser l'instruction getrows de ton recordset... cette dernière en un seul appel te transforme l'intégralité du recordset en tableau de variant. Même si ce dernier prend plus de place en mémoire il est beaucoup plus rapide lors de l'accès que l'itération sur le recordset...
De plus tu obtiens automatiquement le nombre de record puisqu'il te suffit de tester la limite UBOUND du tableau.
Un autre point est que pour rassurer ton utilisateur (sil a Ie5) tu peux voir pour lui afficher le tableau au fur et à mesure qu'il est généré. Cela s'effectue en fixant la largeur des colonnes.
Et encore un dernier conseil pour éviter de surcharger ton serveur... tu peux vérifier en cours de route que ton client est toujours connecté avant de procéder à la génération du tableau...
-------------------------------
Réponse au message :
-------------------------------
ReSalut,
c pour dire que (1h30 + tard) j'ai trouver la solution, j'utilise la method RecordCount.
@+
-------------------------------
Réponse au message :
-------------------------------
Salut,
je cherche le moyen de compter le nombre de resultat que j'ai suite a une requete dans une grosse base de donne (300 000 lignes).
J'ai utiliser la method count :
SQLCount = "SELECT COUNT(*) As Compter FROM Biglist Where Colone1 like '%azer%'"
Set RSCount = Base.Execute(SQLCount)
le probleme c'est que parralement j'affiche les resultat
donc j'ai la même requete presque :
SQLAffiche = "SELECT * FROM Biglist Where Colone1 like '%azer%'"
Set RS = Base.Execute(SQLAffiche)
cela me fait donc 2 requete.
Sans la requete de comptage, la page met 3 sec a s'executer, avec la requete de comptage, ça prend 6sec
soit le double pour les plus matheux d'entre vous

.
J'aimerai savoir si il y a une autre metod pour compter les resultat avec une seule requete.
Si cela peux vous aider, je met le code complet de la page.
Merci
@+
response.expires = -1 response.AddHeader "Pragma", "no-cache" response.AddHeader "cache-control", "no-store" TimeStart = FormatNumber(Timer) Formul=1
Set Base = Server.CreateObject("ADODB.Connection") Base.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.mappath("/clubinfo/files") & "/bd1.mdb"
If Request.Form("go") = 1 Then ' NON TERMINER End if
If Request.Form("go") = 2 Then
If Request.Form("Methode")=1 Then SQLQuery = "SELECT * FROM Biglist Where "& Request.Form("Colone") &" = '"& Request.Form("Var2") &"'" SQLCount = "SELECT COUNT(*) As Compter FROM Biglist Where "& Request.Form("Colone") &" = '"& Request.Form("Var2") &"'" Else SQLQuery = "SELECT * FROM Biglist Where "& Request.Form("Colone") &" like '%"& Request.Form("Var2") &"%'" SQLCount = "SELECT COUNT(*) As Compter FROM Biglist Where "& Request.Form("Colone") &" like '%"& Request.Form("Var2") &"%'" End If Set RS = Base.Execute(SQLQuery) Set RSCount = Base.Execute(SQLCount) Formul=0
End if Set Multiplie = Nothing
If Formul=1 Then Response.Redirect "table.htm" Else Response.Write "<html><head><title>Les resultats</title></head><body><table width=100% border=1><tr><td>Mot 1</td><td>Mot 2</td><td>Genre</td></tr>" Do While Not RS.EOF Response.Write "<tr><td>"& RS("MOT1") &"</tD><td>"& RS("MOT2") &"</td><td>"& RS("GENRE") &"</td></tr>" RS.MoveNext Loop Response.Write "</table>Temps d'execution de la page : " & FormatNumber(FormatNumber(Timer) - TimeStart) &"s<br>Il y a "& RSCount("Compter") &" réponse(s)</body></html>" End If
Base.Close Set RS = Nothing Set Base = Nothing
|