Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
De CDaoIndexInfo structuur bevat informatie over een indexobject dat is gedefinieerd voor data access-objecten (DAO).
Opmerking
DAO wordt ondersteund via Office 2013. DAO 3.6 is de definitieve versie en wordt beschouwd als verouderd.
Syntaxis
struct CDaoIndexInfo {
CDaoIndexInfo(); // Constructor
CString m_strName; // Primary
CDaoIndexFieldInfo* m_pFieldInfos; // Primary
short m_nFields; // Primary
BOOL m_bPrimary; // Secondary
BOOL m_bUnique; // Secondary
BOOL m_bClustered; // Secondary
BOOL m_bIgnoreNulls; // Secondary
BOOL m_bRequired; // Secondary
BOOL m_bForeign; // Secondary
long m_lDistinctCount; // All
// Below the // Implementation comment:
// Destructor, not otherwise documented
};
Parameterwaarden
m_strName
Noem het veldobject een unieke naam. Zie het onderwerp 'Naameigenschap' in DAO Help voor meer informatie.
m_pFieldInfos
Een aanwijzer naar een matrix van CDaoIndexFieldInfo-objecten die aangeven welke ingediende velden of recordsetvelden sleutelvelden in een index zijn. Elk object identificeert één veld in de index. De standaardvolgorde van de index is oplopend. Een indexobject kan een of meer velden bevatten die indexsleutels voor elke record vertegenwoordigen. Dit kan een oplopende, aflopende of een combinatie zijn.
m_nFields
Het aantal velden dat is opgeslagen in m_pFieldInfos.
m_bPrimary
Als de primaire eigenschap TRUE is, vertegenwoordigt het indexobject een primaire index. Een primaire index bestaat uit een of meer velden waarmee alle records in een tabel in een vooraf gedefinieerde volgorde uniek worden geïdentificeerd. Omdat het indexveld uniek moet zijn, is de eigenschap Uniek van het indexobject ook ingesteld op TRUE in DAO. Als de primaire index uit meer dan één veld bestaat, kan elk veld dubbele waarden bevatten, maar elke combinatie van waarden uit alle geïndexeerde velden moet uniek zijn. Een primaire index bestaat uit een sleutel voor de tabel en bevat meestal dezelfde velden als de primaire sleutel.
Wanneer u een primaire sleutel voor een tabel instelt, wordt de primaire sleutel automatisch gedefinieerd als de primaire index voor de tabel. Zie de onderwerpen 'Primaire eigenschap' en 'Unieke eigenschap' in DAO Help voor meer informatie.
Opmerking
Er kan maximaal één primaire index in een tabel zijn.
m_bUnique
Hiermee wordt aangegeven of een indexobject een unieke index voor een tabel vertegenwoordigt. Als deze eigenschap TRUE is, vertegenwoordigt het indexobject een index die uniek is. Een unieke index bestaat uit een of meer velden die alle records in een tabel logisch rangschikken in een unieke, vooraf gedefinieerde volgorde. Als de index uit één veld bestaat, moeten waarden in dat veld uniek zijn voor de hele tabel. Als de index uit meer dan één veld bestaat, kan elk veld dubbele waarden bevatten, maar elke combinatie van waarden uit alle geïndexeerde velden moet uniek zijn.
Als zowel de unieke als de primaire eigenschappen van een indexobject zijn ingesteld op TRUE, is de index uniek en primair: hiermee worden alle records in de tabel in een vooraf gedefinieerde logische volgorde geïdentificeerd. Als de primaire eigenschap is ingesteld op FALSE, is de index een secundaire index. Secundaire indexen (zowel sleutel als niet-sleutel) rangschikken records logisch in een vooraf gedefinieerde volgorde zonder als id voor records in de tabel te fungeren.
Zie de onderwerpen 'Primaire eigenschap' en 'Unieke eigenschap' in DAO Help voor meer informatie.
m_bClustered
Hiermee wordt aangegeven of een indexobject een geclusterde index voor een tabel vertegenwoordigt. Als deze eigenschap TRUE is, vertegenwoordigt het indexobject een geclusterde index; anders niet. Een geclusterde index bestaat uit een of meer niet-sleutelvelden die alle records in een tabel in een vooraf gedefinieerde volgorde rangschikken. Met een geclusterde index worden de gegevens in de tabel letterlijk opgeslagen in de volgorde die is opgegeven door de geclusterde index. Een geclusterde index biedt efficiënte toegang tot records in een tabel. Zie het onderwerp 'Gegroepeerde eigenschap' in DAO Help voor meer informatie.
Opmerking
De eigenschap Geclusterd wordt genegeerd voor databases die gebruikmaken van de Microsoft Jet-database-engine, omdat de Jet-database-engine geen ondersteuning biedt voor geclusterde indexen.
m_bIgnoreNulls
Geeft aan of er indexvermeldingen zijn voor records met Null-waarden in hun indexvelden. Als deze eigenschap TRUE is, hebben velden met Null-waarden geen indexvermelding. Als u sneller wilt zoeken naar records met behulp van een veld, kunt u een index voor het veld definiëren. Als u Null-vermeldingen in een geïndexeerd veld toestaat en verwacht dat veel van de vermeldingen Null zijn, kunt u de eigenschap IgnoreNulls voor het indexobject instellen op TRUE om de hoeveelheid opslagruimte te verminderen die door de index wordt gebruikt. De eigenschap IgnoreNulls en de instelling Vereiste eigenschap bepalen samen of een record met een Null-indexwaarde een indexvermelding heeft, zoals in de volgende tabel wordt weergegeven.
| IgnoreNulls | Verplicht | Null in indexveld |
|---|---|---|
| Klopt | Onwaar | Toegestane null-waarde; er is geen indexvermelding toegevoegd. |
| Onwaar | Onwaar | Toegestane null-waarde; indexvermelding toegevoegd. |
| Waar of onwaar | Klopt | Null-waarde is niet toegestaan; er is geen indexvermelding toegevoegd. |
Zie het onderwerp IgnoreNulls Property in DAO Help voor meer informatie.
m_bRequired
Hiermee wordt aangegeven of een DAO-indexobject een niet-Null-waarde vereist. Als deze eigenschap TRUE is, staat het indexobject geen Null-waarde toe. Zie het onderwerp 'Vereiste eigenschap' in DAO Help voor meer informatie.
Aanbeveling
Wanneer u deze eigenschap kunt instellen voor een DAO-indexobject of een veldobject (opgenomen door een object van een ingesteldeef, recordset of querydef-object), stelt u deze in voor het veldobject. De geldigheid van de eigenschapsinstelling voor een veldobject wordt gecontroleerd vóór die van een indexobject.
m_bForeign
Hiermee wordt aangegeven of een indexobject een refererende sleutel in een tabel vertegenwoordigt. Als deze eigenschap TRUE is, vertegenwoordigt de index een refererende sleutel in een tabel. Een refererende sleutel bestaat uit een of meer velden in een refererende tabel waarmee een rij in een primaire tabel uniek wordt geïdentificeerd. De Microsoft Jet-database-engine maakt een indexobject voor de refererende tabel en stelt de eigenschap Referentiële eigenschap in wanneer u een relatie maakt die referentiële integriteit afdwingt. Zie het onderwerp 'Foreign Property' in DAO Help voor meer informatie.
m_lDistinctCount
Geeft het aantal unieke waarden aan voor het indexobject dat is opgenomen in de gekoppelde tabel. Controleer de eigenschap DistinctCount om het aantal unieke waarden of sleutels in een index te bepalen. Elke sleutel wordt slechts één keer geteld, ook al zijn er mogelijk meerdere exemplaren van die waarde als de index dubbele waarden toestaat. Deze informatie is handig in toepassingen die proberen gegevenstoegang te optimaliseren door indexinformatie te evalueren. Het aantal unieke waarden wordt ook wel de kardinaliteit van een indexobject genoemd. De eigenschap DistinctCount geeft niet altijd het werkelijke aantal sleutels op een bepaald moment weer. Een wijziging die wordt veroorzaakt door het terugdraaien van transacties, wordt bijvoorbeeld niet onmiddellijk doorgevoerd in de eigenschap DistinctCount. Zie het onderwerp DistinctCount Property in DAO Help voor meer informatie.
Opmerkingen
De verwijzingen naar Primair, Secundair en Alle hierboven geven aan hoe de informatie wordt geretourneerd door de GetIndexInfo lidfunctie in klassen CDaoTableDef en CDaoRecordset.
Indexobjecten worden niet vertegenwoordigd door een MFC-klasse. In plaats daarvan bevatten DAO-objecten die onderliggende MFC-objecten van klasse CDaoTableDef of CDaoRecordset een verzameling indexobjecten bevatten, de verzameling Indexen genoemd. Deze klassen bieden lidfuncties voor toegang tot afzonderlijke items van indexinformatie, of u kunt ze allemaal tegelijk openen met een CDaoIndexInfo object door de GetIndexInfo lidfunctie van het betreffende object aan te roepen.
CDaoIndexInfoheeft een constructor en een destructor om de informatie in het indexveld correct toe te wijzen en de toewijzing ervan ongedaan te maken.m_pFieldInfos
Informatie die wordt opgehaald door de GetIndexInfo lidfunctie van een ingediendef-object wordt opgeslagen in een CDaoIndexInfo structuur. Roep de GetIndexInfo lidfunctie aan van het object met de ingediendeef in waarvan de indexenverzameling het indexobject wordt opgeslagen.
CDaoIndexInfo definieert ook een Dump lidfunctie in builds voor foutopsporing. U kunt Dump de inhoud van een CDaoIndexInfo object dumpen.
Requirements
Rubriek:afxdao.h
Zie ook
Structuren, stijlen, callbacks en berichttoewijzingen
CDaoTableDef::GetIndexInfo