Arjuna a écrit :
Autre méthode que le COUNT (parceque c'est pas terrible) :
Code :
- Dim cpt as Integer
- cpt = 0
- ' On teste que la requête n'est pas vide
- If Not (rs.BOF and rs.EOF) Then
- ' On retourne la première ligne du rs.
- rs.MoveFirst
- ' On parcours le rs d'un bout à l'autre
- Do While Not rs.EOF
- ' Hop, on a trouvé une ligne
- cpt = cpt + 1
- Loop
- ' On retourne à la première ligne
- rs.MoveFirst
- End
|
Ce système est mieu qu'un "count()", parceque :
1) Ca t'évite de faire une requête supplémentaire (ce qu'il y a de plus coûteux)
2) Da toute façon, ton RS tu vas devoir le parcourir, donc dans tous les cas, il faudra bien le charger en mémoire à un moment où à un autre.
Ce système est mieu, uniquement si le nombre de lignes est limité, et leur taille limitée.
Evidement, si t'as des champs de type "text" et un grand nombre de lignes ( > 100 000) ce sytème sera peut-être plus lent qu'un count(), mais en règle générale, il est mieu.
|