La structure CDaoIndexInfo a la forme suivante:
struct CDaoIndexInfo {
nbsp ; CDaoIndexInfo () ; / / Constructeur
CString m_str&Name ; / / Primaire
CDaoIndexFieldInfo * m_pFieldInfos ; / / Primaire
m_nFields courte ; / / Primaire
BOOL m_bPrimary ; / / Secondaire
BOOL m_bUnique ; / / Secondaire
BOOL m_bClustered ; / / Secondaire
BOOL m_bIgnoreNulls ; / / Secondaire
BOOL m_bRequired ; / / Secondaire
BOOL m_bForeign ; / / Secondaire
long m_lDistinctCount ; / / Toutes les
/ / En bas la / / mise en commentaire :
/ / Destructeur, non documenté
}
La structure de CDaoIndexInfo contient des informations sur un objet index défini pour data access objects (DAO). Les références à la primaire, secondaire et tous les ci-dessus indiquent comment l'information est retournée par la fonction membre GetIndexInfo dans les classes CDaoTableDef et CDaoRecordset.
Objets de l'index ne sont pas représentés par une classe MFC. Au lieu de cela, les objets DAO MFC objets de la classe CDaoTableDef ou CDaoRecordset sous-jacents contient une collection d'objets de l'index, appelée la collection Indexes. Ces classes fournissent des fonctions membres pour accéder aux éléments individuels des informations d'index, ou vous pouvez y accéder tout à la fois avec un objet CDaoIndexInfo en appelant la fonction membre GetIndexInfo de l'objet.
CDaoIndexInfo est un constructeur et un destructeur de bien allouer et désallouer les informations de champ d'index de m_pFieldInfos.
Membres
m_strName
Noms unique de l'objet field. Pour plus de détails, voir la rubrique « Nom de propriété » dans l'aide de DAO.
m_pFieldInfos
Pointeur vers un tableau d'objets CDaoIndexFieldInfo indiquant les champs de l'objet tabledef ou de jeu d'enregistrements sont des champs de clé dans un index. Chaque objet identifie un champ dans l'index. L'ordre d'index par défaut est croissant. Un objet index peut avoir un ou plusieurs champs représentant les clés de l'index pour chaque enregistrement. Ces peuvent être ascendant, descendant, ou une combinaison.
m_nFields
Le nombre de champs stockés dans m_pFieldInfos.
m_bPrimary
Si la première propriété est TRUE, l'objet index représente un index primaire. Un index primaire se compose d'un ou plusieurs champs qui identifient tous les enregistrements d'une table dans un ordre prédéfini. Parce que le champ d'index doit être unique, la propriété Unique de l'objet Index est également définie TRUE dans DAO. Si l'index primaire se compose de plus d'un domaine, chaque champ peut contenir des valeurs dupliquées, mais chaque combinaison de valeurs de tous les champs indexés doit être unique. Un index primaire se compose d'une clé pour la table et contient généralement les mêmes champs que la clé primaire.
Lorsque vous définissez une clé primaire pour une table, la clé primaire est automatiquement définie comme l'index primaire de la table. Pour plus d'informations, consultez les rubriques « Biens primaires » et « Propriété Unique » dans l'aide de DAO.
&Notenbsp ; On peut, tout au plus, un index primaire sur une table.
m_bUnique
Indique si un objet index représente un index unique pour une table. Si cette propriété est TRUE, l'objet index représente un index unique. Un index unique se compose d'un ou plusieurs champs organiser logiquement tous les enregistrements dans une table dans un ordre prédéfini unique. Si l'index est constitué d'un seul champ, les valeurs dans ce champ doivent être uniques pour la table entière. Si l'index est constitué de plus d'un domaine, chaque champ peut contenir des valeurs dupliquées, mais chaque combinaison de valeurs de tous les champs indexés doit être unique.
Si l'Unique et le primaire des propriétés d'un objet index sont définies sur TRUE, l'index est unique et primaire : elle identifie de manière unique tous les enregistrements de la table dans un ordre prédéfini, logique. Si la propriété principale est définie sur FALSE, l'index est un index secondaire. Les index secondaires (clés et non-clés) organiser logiquement les enregistrements dans un ordre prédéfini sans servir un identificateur pour les enregistrements de la table.
Pour plus d'informations, consultez les rubriques « Biens primaires » et « Propriété Unique » dans l'aide de DAO.
m_bClustered
Indique si un objet index représente un index cluster d'une table. Si cette propriété est TRUE, l'objet index représente un index ordonné en clusters ; sinon, il ne le fait pas. Un index cluster est composé d'un ou plus nonkey des champs qui, pris ensemble, organiser tous les enregistrements d'une table dans un ordre prédéfini. Avec un index ordonné en clusters, les données de la table sont littéralement stockées dans l'ordre spécifié par l'index ordonné en clusters. Un index cluster fournit un accès efficace aux enregistrements d'une table. Pour plus d'informations, consultez la rubrique « Propriété Clustered » dans l'aide de DAO.
&Notenbsp ; La propriété Clustered est ignorée pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, parce que le moteur de base de données Jet ne supporte pas les index clusterisés.
m_bIgnoreNulls
Indique s'il y a des entrées d'index pour les enregistrements qui contiennent des valeurs Null dans leurs champs de l'index. Si cette propriété est TRUE, les champs avec les valeurs Null n'ont pas une entrée d'index. Afin de rechercher les enregistrements à l'aide d'un champ plus rapidement, vous pouvez définir un index pour le champ. Si vous autoriser les entrées Null dans un champ indexé et s'attendre à beaucoup des entrées NULL, vous pouvez définir la propriété IgnoreNulls de l'objet index TRUE afin de réduire la quantité d'espace de stockage qui utilise l'index. Le paramètre de la propriété IgnoreNulls et le paramètre de propriété doit déterminent ensemble si un enregistrement avec une valeur Null de l'indice a une entrée d'index, comme le montre le tableau suivant.
| IgnoreNulls | Obligatoire | Null dans le champ d'index |
| Vrai | Faux | Valeur NULL autorisée ; aucune entrée d'index ajoutée. |
| Faux | Faux | Valeur NULL autorisée ; entrée d'index ajoutée. |
| Vrai ou faux | Vrai | Valeur null non autorisée ; aucune entrée d'index ajoutée. |
Pour plus d'informations, consultez la rubrique « Propriété IgnoreNulls » dans l'aide de DAO.
m_bRequired
Indique si un objet d'index DAO requiert une valeur non Null.Si cette propriété est TRUE, l'objet index ne permet pas une valeur Null. Pour plus d'informations, consultez la rubrique « Biens nécessaires » dans l'aide de DAO.
Astuce  ; Lorsque vous pouvez définir cette propriété pour un objet d'index DAO ou d'un objet field (contenu tabledef, du jeu d'enregistrements, ou un objet querydef), la valeur de l'objet field. La validité du paramétrage de la propriété pour un objet champ est vérifiée avant que d'un objet index.
m_bForeign
Indique si un objet index représente une clé étrangère dans une table. Si cette propriété est TRUE, l'index représente une clé étrangère dans une table. Une clé étrangère se compose d'un ou plusieurs champs dans une table étrangère identifient de manière unique une ligne dans une table primaire. Le moteur de base de données Microsoft Jet crée un objet d'index pour la table étrangère et définit la propriété étrangère lorsque vous créez une relation qui applique l'intégrité référentielle. Pour plus d'informations, consultez la rubrique « Biens étrangers » dans l'aide de DAO.
m_lDistinctCount
Indique le nombre de valeurs uniques pour l'objet index qui figurent dans la table associée. Vérifiez la propriété DistinctCount pour déterminer le nombre de valeurs uniques ou de clés, d'un index. Toute clé est compté qu'une seule fois, même s'il peut y avoir plusieurs occurrences de cette valeur si l'index permet des valeurs en double. Cette information est utile dans les applications qui visent à optimiser l'accès aux données en évaluant les informations d'index. Le nombre de valeurs uniques est également connu sous le nom de la cardinalité d'un objet index. La propriété DistinctCount sera reflètent toujours pas le nombre réel de clés à un moment donné. Par exemple, un changement causé par un rollback transaction n'est pas être reflété immédiatement dans la propriété DistinctCount. Pour plus d'informations, consultez la rubrique « Propriété DistinctCount » dans l'aide de DAO.
Commentaires
Information récupérée par la fonction membre GetIndexInfo d'un objet tabledef est stockée dans une structure CDaoIndexInfo . Appelez la fonction membre GetIndexInfo de l'objet tabledef dans dont la collection index de l'objet index est stocké. CDaoIndexInfo définit également une fonction membre Dump dans les versions de débogage. Vous pouvez utiliser Dump pour vider le contenu d'un objet CDaoIndexInfo.
Pour plus d'informations sur l'utilisation de ceci et autres structures d'information sur DAO MFC, consultez l'article Collections DAO : informations sur les objets DAO dans le Guide du programmeur Visual C++.
Voir aussi  ;CDaoTableDef::GetIndexInfo