OVH Cloud OVH Cloud

Nombre d'enregistrements d'une table

4 réponses
Avatar
Nicolas
Bonjour,

Je cherche une instruction en VB plus rapide que

Set Rs =3D Db.OpenRecordset("SELECT COUNT(*) AS TOTAL FROM "=20
& Td.Name)

pour savoir le nombre d'enregistrements d'une table.

Typiquement, j'ai certaines tables (attach=E9e en ODBC)
poss=E9dant pres de 20000 enreg, ma requete met environ 3=20
minutes donc je cherche un autre moyen.

Merci d'avance

Nicolas

4 réponses

Avatar
Benoît O'Hare
ou mieux

set rs = db.openrecordset("matable")

nbenreg : rs.recordcount

--
(Hello)
| | | / O
(o) (o) O
(_) / o
o0oo - - - - - - oo0oo
(MrBinaire)

Benoît O'Hare
www.tryskel.com (portail web)
www.tryskel.net (communauté tryskel)
"Nicolas" a écrit dans le message de news:
030f01c34aae$b62c7e40$
Bonjour,

Je cherche une instruction en VB plus rapide que

Set Rs = Db.OpenRecordset("SELECT COUNT(*) AS TOTAL FROM "
& Td.Name)

pour savoir le nombre d'enregistrements d'une table.

Typiquement, j'ai certaines tables (attachée en ODBC)
possédant pres de 20000 enreg, ma requete met environ 3
minutes donc je cherche un autre moyen.

Merci d'avance

Nicolas
Avatar
Christophe
Bonjour,
pour que recordcount soit active et renvoie le nb d'enregistrement il faut
faire movefirst movelast avant de l'utiliser.

Christophe V.
"Nicolas" a écrit dans le message de news:
036a01c34ab2$985c5d50$
La solution que vous me proposez là, je l'ai déjà essayé
et elle ne me retourne que des 1 ou des 0 (1 pour la
présence d'enreg, 0 pour aucun enreg)

Que faire ?




-----Message d'origine-----
set rs = db.execute("select * from matable")
ou (openrecordset)

msgbox " il y a " & rs.recordcount & " enregistrements ds


la table"

--
(Hello)
| | | / O
(o) (o) O
(_) / o
o0oo - - - - - - oo0oo
(MrBinaire)

Benoît O'Hare
www.tryskel.com (portail web)
www.tryskel.net (communauté tryskel)
"Nicolas" a écrit dans le


message de news:
030f01c34aae$b62c7e40$
Bonjour,

Je cherche une instruction en VB plus rapide que

Set Rs = Db.OpenRecordset("SELECT COUNT(*) AS TOTAL FROM "
& Td.Name)

pour savoir le nombre d'enregistrements d'une table.

Typiquement, j'ai certaines tables (attachée en ODBC)
possédant pres de 20000 enreg, ma requete met environ 3
minutes donc je cherche un autre moyen.

Merci d'avance

Nicolas



.



Avatar
.Saphyr
> set rs = db.execute("select * from matable")
msgbox " il y a " & rs.recordcount & " enregistrements ds la table"



Set Rs = Db.OpenRecordset("SELECT COUNT(*) AS TOTAL FROM "
& Td.Name)




Si j'ai bien compris votre réponse, vous proposez non plus de créer un
enregistrement contenant un nombre mais un enregistrement contenant
plus de 20'000 entrées à la place alors que la demande est d'accélerer
la chose ?

je reste sceptique...

Je ne suis pas une bête en sql mais est-ce qu'un SELECT COUNT (id)
plutôt que un SELECT COUNT(*) ne serait-il pas censé aller plus vite ?

J'entends par là le fait d'effectuer le calcul sur une colonne indexée (vous
l'avez indexée la colonne primaire n'est-ce pas ?) ..



Sinon, voici ce que je fais dans mes systèmes de news pour savoir combien
il y a de commentaires pour chaque news:

Je ne fais pas "SELECT COUNT(*) FROM news_comments WHERE newsid = 234"
mais "SELECT nbcommentaires FROM news WHERE id#4"

Vous saisissez la différence ? Ca demande une petite requête en plus lors
des insertions et des suppressions mais votre application tolèrera beaucoup
mieux la charge.

.antoine
Avatar
Serialv
change le curseur du recordset

"Benoît O'Hare" a écrit dans le message de news:
#53sK#
ou mieux

set rs = db.openrecordset("matable")

nbenreg : rs.recordcount

--
(Hello)
| | | / O
(o) (o) O
(_) / o
o0oo - - - - - - oo0oo
(MrBinaire)

Benoît O'Hare
www.tryskel.com (portail web)
www.tryskel.net (communauté tryskel)
"Nicolas" a écrit dans le message de news:
030f01c34aae$b62c7e40$
Bonjour,

Je cherche une instruction en VB plus rapide que

Set Rs = Db.OpenRecordset("SELECT COUNT(*) AS TOTAL FROM "
& Td.Name)

pour savoir le nombre d'enregistrements d'une table.

Typiquement, j'ai certaines tables (attachée en ODBC)
possédant pres de 20000 enreg, ma requete met environ 3
minutes donc je cherche un autre moyen.

Merci d'avance

Nicolas