comment compter le nombre d'enregistrements en ASP classique?
Je ne suis pas assez familier avec la programmation ASP classique. J'ai juste besoin d'un petit code à exécuter sur ma page web. Comment dois-je compter de l'enregistrement de la requête?
<%
Set rsscroll = Server.CreateObject("ADODB.Recordset")
Dim strSQLscroll, rsscroll
strSQLscroll = "SELECT * FROM tblItems where expiration_date > getdate() order by expiration_date desc;"
rsscroll.open strSQLscroll,oConn
%>
merci,
OriginalL'auteur | 2009-06-29
Vous devez vous connecter pour publier un commentaire.
Il est possible (mais non recommandé) d'utiliser la propriété RecordCount sur l'objet Recordset comme suit:
Si votre table est vraiment grand, cela peut prendre un certain temps à s'exécuter. Je voudrais lancer à la place séparée requête SQL pour obtenir le nombre total d'enregistrements
OriginalL'auteur Bork Blatt
rsscroll.RecordCount
Gardez à l'esprit que vous devez avoir nocount réglé sur on. voir stackoverflow.com/a/16617637/356544
OriginalL'auteur Chris Klepeis
Une solution simple est d'utiliser le SQL COMPTER de la méthode. Cela suppose que vous voulez que le nombre de lignes et de ne pas les données elles-mêmes.
Cela renvoie une ligne avec une valeur unique appelé "Total". (Lisez la suite si vous le souhaitez, le nombre de lignes et de données.)
Votre code de requête utilise une valeur par défaut du jeu d'enregistrements, qui renvoie des données en "forward-only" mode pour plus d'efficacité. Il franchit la ligne-par-ligne, mais ne sait pas le nombre réel. (Ce mode définit également le jeu d'enregistrements.RecordCount de -1, de sorte que le champ n'est pas utile pour vous.)
Jeu d'enregistrements.Ouvrez le "Curseur" Type de paramètre vous permet de changer de "Clavier" mode (valeur de paramètre 1), qui ne définir le champ RecordCount pour le nombre de lignes de données. ("Type de serrure" et "Type de Commande" paramètres inclus pour l'intégralité, mais ils ne figure pas dans cette réponse.)
Ajouter ce paramètre à votre code de jeu d'enregistrements.Appel ouvert, puis vérifier RecordCount.
Si les performances de la base signifie quoi que ce soit à votre situation, l' jeu d'enregistrements.GetRows() méthode est beaucoup plus efficace.
OriginalL'auteur Matthew Glidden
Vous pouvez simplement modifier votre SQL à compter le nombre d'enregistrements:
Ensuite vous avez juste besoin de
response.write rsscroll("Total")
OriginalL'auteur Dan
J'ai l'habitude utiliser une requête "select count(*) from table" pour obtenir compte car habituellement, j'ai besoin non seulement le comte, mais une somme du nombre d'unités ou le prix moyen ou quoi que ce soit et il est plus facile d'écrire une requête distincte que de faire plus de variables et de dire "TotalUnits = TotalUnits + rs (les"Parts").valeur" à l'intérieur de la boucle pour afficher les résultats. Il est également très utile pour les fois où vous avez besoin pour afficher les totaux ci-dessus, les résultats et vous ne voulez pas de boucle si le jeu d'enregistrements en double.
OriginalL'auteur tooshel
Obtenir dans le habbit de stocker les données renvoyées dans des tableaux. C'est incroyablement plus rapide pour effectuer une itération que l'utilisation d'ouvrir un jeu d'enregistrements. Aussi, spécifier les champs à sélectionner lorsque vous faites ce que vous avez à faire référence explicitement à l'index du tableau.
OriginalL'auteur Tom Gullen
<%
'TableID = vos tables ID...
%>
OriginalL'auteur Chris Dowdeswell
Vous pouvez essayer ce
OriginalL'auteur Mandeep Singh
Si vous utilisez MySQL, essayez ceci:
OriginalL'auteur Marcolla M