JetIndexRecordCount fonction)

S’applique à : Windows | Windows Serveurs

JetIndexRecordCount fonction)

La fonction JetIndexRecordCount compte le nombre d’entrées dans l’index actuel à partir de la position actuelle vers l’avant. La position actuelle est incluse dans le nombre. Le nombre peut être supérieur au nombre total d’enregistrements dans la table si l’index actuel est sur une colonne à valeurs multiples et que les instances de la colonne ont des valeurs multiples. Si la table est vide, la valeur 0 est retournée pour le nombre.

    JET_ERR JET_API JetIndexRecordCount(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         unsigned long* pcrec,
      __in          unsigned long crecMax
    );

Paramètres

sesid

Session à utiliser pour cet appel.

TableID

Curseur à utiliser pour cet appel.

pcrec

Pointeur vers une valeur long non signée pour recevoir le nombre.

crecMax

Nombre maximal d’enregistrements à compter. Une valeur crecMax de 0 indique que le nombre est illimité.

Valeur renvoyée

Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour suivants. pour plus d’informations sur les erreurs ESE possibles, consultez erreurs du moteur de Stockage Extensible et paramètres de gestion des erreurs.

Code de retour

Description

JET_errSuccess

L’opération s’est terminée avec succès.

JET_errClientRequestToStopJetService

Impossible d’effectuer l’opération, car toute activité sur l’instance associée à la session a été interrompue suite à un appel à JetStopService.

JET_errInstanceUnavailable

Impossible d’effectuer l’opération, car l’instance associée à la session a rencontré une erreur irrécupérable qui requiert que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données.

Windows XP : cette valeur de retour est introduite dans Windows XP.

JET_errNoCurrentRecord

Le curseur ne se trouve pas actuellement sur un enregistrement et la table n’est pas vide.

Windows XP, Windows server 2003, Windows 2000 server et Windows 2000 Professional : Si le curseur est positionné sur un index ou une plage d’index vide, JetIndexRecordCount retourne par erreur JET_errNoCurrentRecord.

JET_errNotInitialized

Impossible d’effectuer l’opération, car l’instance associée à la session n’a pas encore été initialisée.

JET_errRestoreInProgress

Impossible de terminer l’opération, car une opération de restauration est en cours sur l’instance associée à la session.

JET_errSessionSharingViolation

La même session ne peut pas être utilisée simultanément pour plusieurs threads.

Windows XP : cette valeur de retour est introduite dans Windows XP.

JET_errTermInProgress

L’opération ne peut pas se terminer car l’instance qui est associée à la session est en cours d’arrêt.

Si cette fonction a la valeur, le nombre exact d’entrées d’index, y compris la position actuelle et jusqu’à crecMax (si elle n’est pas 0), est retourné dans la valeur long pointée longue non signée par pcrec.

Si cette fonction échoue, aucune modification n’est apportée à la mémoire allouée sur precpos.

Notes

Si la table n’est pas vide, le curseur doit être positionné sur l’enregistrement à partir duquel commencer le décompte. Le nombre inclura cet enregistrement, et le nombre sera reporté jusqu’à la limite donnée dans crecMax. Si crecMax a la valeur 0, l’opération continue à compter jusqu’à la fin de l’index.

Les plages d’index peuvent être utilisées pour construire des limitations de fin d’index artificielles pour le nombre. De cette manière, les sous-plages d’un index peuvent être comptées exactement. Le curseur doit être positionné sur la première ligne de la plage. La fin de la clé de la plage doit être établie, puis JetSetIndexRange doit être utilisé pour définir la plage supérieure, soit de manière inclusive, soit exclusivement. Enfin, JetIndexRecordCount doit être appelé pour compter exactement la plage.

JetIndexRecordCount obéit à la sémantique de transaction et retourne un nombre précis pour cette session particulière dans son état transactionnel actuel.

JetIndexRecordCount accède aux pages de feuille d’index afin de compter exactement les entrées. Par conséquent, il peut effectuer une grande quantité d’e/s et peut être lent. La limitation crecMax doit être utilisée pour empêcher une charge excessive. Si une plage est volumineuse, il peut être possible de compter la plage de manière approximative à l’aide de JetGetRecordPosition.

Windows XP, Windows server 2003, Windows 2000 server et Windows 2000 Professional : Si le curseur est positionné sur un index ou une plage d’index vide, JetIndexRecordCount retourne à tort JET_errNoCurrentRecord plutôt que de retourner un nombre d’enregistrements égal à zéro. Dans ce cas, l’application doit vérifier si l’index ou la plage d’index est vide.

Spécifications

Condition requise Valeur

Client

requiert Windows Vista, Windows XP ou Windows 2000 Professional.

Serveur

nécessite Windows server 2008, Windows server 2003 ou Windows 2000 server.

En-tête

Déclaré dans esent. h.

Bibliothèque

Utilisez ESENT. lib.

DLL

Requiert ESENT.dll.

Voir aussi

JET_ERR
JET_SESID
JET_TABLEID
JetGetRecordPosition
JetSetIndexRange
JetStopService