Partager via


Enregistrement actif et taille du recordset

Cette section explique comment localiser la position actuelle du curseur dans l’exemple d’un Recordset dans l’exemple de code JScript pour retourner un recordset.

Enregistrement en cours

L’enregistrement actif dans le jeu de données correspond à celui pointé par la position du curseur de l’objet Recordset. Lorsqu’un objet Recordset est retourné à partir de la source de données suite à l’appel de Recordset.Open, Command.Execute ou Connection.Execute (y compris Connection.NamedCommand et Connection.StoredProcedure), le curseur est défini pour pointer vers le premier enregistrement. Dans l’exemple de jeu de données, l’enregistrement actuel initial est l’élément « Uncle Bob’s Organic Dried Pears ».

Taille du Recordset

Pour connaître la taille d’un objet Recordset, obtenez la valeur de la propriété Recordset.RecordCount. Cette valeur est un entier long qui indique le nombre d’enregistrements dans le Recordset. Si le jeu de données est retourné par le fournisseur OLEDB pour Microsoft SQL Server, cette valeur donne le nombre de lignes retournées. La lecture de la propriété RecordCount sur un recordset fermé provoque une erreur.

Si le nombre d’enregistrements ne peut pas être déterminé, la valeur de la propriété est -1.

La valeur de la propriété RecordCount dépend également des fonctionnalités du fournisseur et du type de curseur utilisé. Pour un curseur avant uniquement, la valeur est -1. Pour un curseur statique ou de jeu de clés, la valeur correspond au nombre réel d’enregistrements retournés dans l’objet Recordset. Pour un curseur dynamique, la valeur est -1 ou le nombre réel d’enregistrements, selon la source de données.

Un curseur qui prend en charge Recordcount doit fonctionner plus dur et nécessite donc plus de puissance de calcul qu’un curseur ne prend pas en charge Recordcount. Si vous n’avez pas besoin de connaître le nombre d’enregistrements, l’utilisation d’un type de curseur différent peut vous aider à améliorer les performances de votre application, en particulier si vous devez gérer un jeu de données volumineux.

Dans certains cas, un fournisseur ou un curseur ne peut pas déterminer la valeur RecordCount sans d’abord extraire tous les enregistrements de la source de données. Pour garantir un comptage précis, appelez la méthode Recordset.MoveLast avant d’appeler Recordset.RecordCount.

L’exemple d’objet Recordset obtenu à l’aide de l’exemple de code JScript utilise un curseur avant uniquement. L’appel de RecordCount sur cet objet entraîne toujours -1. Si vous modifiez la ligne de code qui appelle la méthode Recordset.Open, comme indiqué dans l’exemple suivant, la propriété RecordCount retourne le nombre réel d’enregistrements extraits.

oRs.Open sSQL, sCnStr, adOpenStatic, adLockOptimistic, adCmdText   

En effet, les curseurs statiques avec le fournisseur Microsoft OLE DB pour SQL Server prennent en charge RecordCount. Dans cet exemple, il existe cinq enregistrements et, par conséquent, RecordCount doit produire la valeur 5.

Cette section contient la rubrique suivante.

Limites d’un recordset