Nbre d'enregistrements dans un Recordset [VB6] - VB/VBA/VBS - Programmation
Marsh Posté le 20-01-2005 à 16:27:51
bienvenu dans le monde ADO...
avec Access, ton pb, est tt a fait normal, comme avec toute autre base de donnée en mode "client ADO".
Avec access, aucun moyen de passer ta connection en mode "server" donc, pour recuperer le nombre d'enreg, tu fais un "select count(...)" AVANT ta requete
Marsh Posté le 24-01-2005 à 14:45:13
Autre méthode que le COUNT (parceque c'est pas terrible) :
Code :
|
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.
Marsh Posté le 24-01-2005 à 16:19:46
Arjuna a écrit : Autre méthode que le COUNT (parceque c'est pas terrible) :
|
Et il faut egalement préciser que cela ne fonctionne pas si la connec ADO est en forward only
Marsh Posté le 20-01-2005 à 16:11:11
Salut à tous.
Je suis en train d'halluciner
J'interroge une base Access avec une requète SQL.
Je colle le résultat du Select dans un Recordset.
Et quand je demande le nbre d'enregistrements, j'obtient des trucs à se taper la tête contre les murs :
rstMonRecordSet.MaxRecords = 0
rstMonRecordSet.RecordCount = -1
Je me dis, y a un soucis : ma requete ramene une sélection vide.
Et bien non !
Je peux écrire les données du Recordset dans un .txt, et il y a bien des données dedans !
Vous avez une idée ?
Pourquoi ce pbe ?
Comment récupérer le nbre d'enregistrements ?
Merci de votre aide
Laurent