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