Die CDaoIndexInfo -Struktur hat folgende form:
struct CDaoIndexInfo {}
&Nbsp; CDaoIndexInfo (); / / Konstruktor
CString M_strName; / / Primär
CDaoIndexFieldInfo * M_pFieldInfos; / / Primär
kurze M_nFields; / / Primär
BOOL M_bPrimary; / / Sekundäre
BOOL M_bUnique; / / Sekundäre
BOOL M_bClustered; / / Sekundäre
BOOL M_bIgnoreNulls; / / Sekundäre
BOOL M_bRequired; / / Sekundäre
BOOL M_bForeign; / / Sekundäre
lange M_lDistinctCount; / / Alle
/ / Unten den / / Umsetzung Kommentar:
/ / Destruktor, nicht anders dokumentiert
}
Die CDaoIndexInfo -Struktur enthält Informationen über ein Index-Objekt für Datenzugriffsobjekte (DAO) definiert. Die Verweise auf die primären, sekundären und alle oben genannten anzugeben, wie die Informationen von der GetIndexInfo -Memberfunktion in Klassen CDaoTableDef und CDaoRecordset zurückgegeben werden.
Index-Objekten werden nicht durch eine MFC-Klasse dargestellt. Stattdessen enthalten MFC-Objekte der Klasse CDaoTableDef oder CDaoRecordset zugrunde liegenden DAO-Objekte eine Auflistung von Index-Objekten, die die Indexes-Auflistung aufgerufen. Diese Klassen liefern Memberfunktionen auf einzelne Elemente von Indexinformationen zugreifen, oder Sie greifen sie auf einmal mit einem CDaoIndexInfo -Objekt durch Aufrufen der GetIndexInfo -Memberfunktion des enthaltenden Objekts.
CDaoIndexInfo verfügt über einen Konstruktor und Destruktor um richtig zuordnen und freigeben die Index-Feld-Informationen in m_pFieldInfos.
Mitglieder
m_strName
Das Field-Objekt benennt eindeutig. Weitere Informationen finden Sie im Thema "Name-Eigenschaft" in der DAO-Hilfe.
m_pFieldInfos
Ein Zeiger auf ein Array von CDaoIndexFieldInfo -Objekten, die angibt, welche Tabledef oder DAO-Recordset-Felder sind Felder in einem Index. Jedes Objekt gibt ein Feld im Index. Die Standard-Index-Reihenfolge ist aufsteigend. Ein Index-Objekt kann ein oder mehrere Felder, darstellt die Indexschlüssel für jeden Datensatz haben. Diese können, absteigende, oder eine Kombination aufsteigend sein.
m_nFields
Die Anzahl der Felder im M_pFieldInfos gespeichert.
m_bPrimary
Wenn die Primary-Eigenschaft TRUEist, stellt das Index-Objekt einen primären Index. Ein Primärindex besteht aus einem oder mehreren Feldern, die alle Datensätze in einer vordefinierten Reihenfolge in einer Tabelle eindeutig identifizieren. Da das Index-Feld eindeutig sein muss, wird auch die einzigartige Eigenschaft des Index-Objekts auf TRUE in DAO festgelegt. Wenn der primäre Index von mehr als einem Feld besteht, jedes Feld Duplikatwerte enthalten kann, aber jede Kombination der Werte aller indizierten Felder muss eindeutig sein. Ein Primärindex besteht aus einem Schlüssel für die Tabelle und in der Regel enthält die gleichen Felder als Primärschlüssel.
Wenn Sie einen Primärschlüssel für eine Tabelle festlegen, wird der Primärschlüssel automatisch als der primäre Index für die Tabelle definiert. Weitere Informationen finden Sie unter die Themen "Primary-Eigenschaft" und "Unique-Eigenschaft" in der DAO-Hilfe.
Hinweis&Nbsp; Es kann sein, bei den meisten einen Primärindex für eine Tabelle.
m_bUnique
Gibt an, ob ein Index-Objekt einen eindeutigen Index für eine Tabelle darstellt. Wenn diese Eigenschaft TRUEist, stellt das Index-Objekt einen Index, der einzigartig ist. Ein eindeutiger Index besteht aus einem oder mehreren Feldern, die alle Datensätze in einer Tabelle in einer einzigartigen, vordefinierte Reihenfolge logisch anordnen. Wenn der Index aus einem Feld besteht, müssen Werte in diesem Bereich für die gesamte Tabelle eindeutig sein. Wenn der Index von mehr als einem Feld besteht, jedes Feld Duplikatwerte enthalten kann, aber jede Kombination der Werte aller indizierten Felder muss eindeutig sein.
Wenn die Unique- und Primary Eigenschaften eines Index-Objekts auf TRUEfestgelegt sind, der Index ist einzigartig und primäre: es eindeutig identifiziert alle Datensätze in der Tabelle in einer vordefinierten, logischen Reihenfolge. Wenn die Primary-Eigenschaft auf FALSEfestgelegt ist, ist der Index ein sekundärer Index. Sekundäre Indizes (Schlüssel und Nichtschlüsselspalten) anordnen logisch Datensätze in einer vordefinierten Reihenfolge ohne dienen als Bezeichner für Datensätze in der Tabelle.
Weitere Informationen finden Sie unter die Themen "Primary-Eigenschaft" und "Unique-Eigenschaft" in der DAO-Hilfe.
m_bClustered
Gibt an, ob ein Index-Objekt einen gruppierten Index für eine Tabelle darstellt. Wenn diese Eigenschaft TRUEist, stellt das Index-Objekt einen gruppierten Index; Andernfalls ist dies nicht der Fall. Ein gruppierter Index besteht aus einem oder mehr Nonkey Felder, die, zusammengenommen alle Datensätze in einer Tabelle in einer vordefinierten Reihenfolge anordnen. Mit einem gruppierten Index werden die Daten in der Tabelle buchstäblich in der Reihenfolge des gruppierten Indexes angegeben gespeichert. Ein gruppierter Index bietet effizienten Zugriff auf Datensätze in einer Tabelle. Weitere Informationen finden Sie im Thema "Clustered-Eigenschaft" in der DAO-Hilfe.
Hinweis&Nbsp; Die Clustered-Eigenschaft ist für Datenbanken, die das Microsoft Jet-Datenbankmodul verwenden, da das Jet-Datenbankmodul nicht gruppierte Indizes unterstützt, ignoriert.
m_bIgnoreNulls
Gibt an, ob es Indexeinträge für Datensätze, die Null-Werte in ihren Indexfeldern enthalten sind. Wenn diese Eigenschaft TRUEist, müssen die Felder mit Null-Werten keinen Indexeintrag. Um Suche nach Datensätzen mit einem Feld schneller zu machen, können Sie einen Index für das Feld definieren. Wenn Sie Einträge in ein indiziertes Feld Null zulassen und viele Einträge erwarten zu Null werden, stellen Sie die Eigenschaft IgnoreNulls für das Index-Objekt auf TRUE , um den Speicherplatz zu reduzieren, den der Index verwendet. Die Einstellung der IgnoreNulls-Eigenschaft und der Einstellung der Required-Eigenschaft bestimmen zusammen, ob ein Datensatz mit einem Indexwert von Null Indexeintrag, wie in der folgenden Tabelle dargestellt hat.
| IgnoreNulls | Erforderlich | NULL in Indexfeld |
| Wahr | Falsch | NULL-Wert zulässig; kein Indexeintrag hinzugefügt. |
| Falsch | Falsch | NULL-Wert zulässig; Indexeintrag hinzugefügt. |
| True oder False | Wahr | NULL-Wert nicht zulässig; kein Indexeintrag hinzugefügt. |
Weitere Informationen finden Sie im Thema "IgnoreNulls-Eigenschaft" in der DAO-Hilfe.
m_bRequired
Gibt an, ob ein DAO-Index-Objekt einen Wert ungleich Null erfordert.Wenn diese Eigenschaft TRUEist, lässt das Index-Objekt einen Null-Wert nicht. Weitere Informationen finden Sie im Thema "Erforderliche Eigenschaft" in der DAO-Hilfe.
Tipp&Nbsp; Wenn Sie diese Eigenschaft für ein DAO-Index-Objekt oder ein Field-Objekt (durch eine Tabledef, Recordsets oder Querydef-Objekt enthalten) festlegen können, legen sie für das Field-Objekt. Die Gültigkeit der Einstellung der Eigenschaft für ein Field-Objekt wird vor der ein Index-Objekt überprüft.
m_bForeign
Gibt an, ob ein Index-Objekt einen Fremdschlüssel in einer Tabelle darstellt. Wenn diese Eigenschaft TRUEist, stellt der Index einen Fremdschlüssel in einer Tabelle dar. Ein Fremdschlüssel besteht aus ein oder mehrere Felder in der Fremdtabelle, die eine Zeile in eine primäre Tabelle eindeutig identifizieren. Das Microsoft Jet-Datenbankmodul erstellt ein Index-Objekt für die Fremdtabelle und legt die ausländische-Eigenschaft fest, wenn Sie eine Beziehung erstellen, die die referenziellen Integrität erzwingt. Weitere Informationen finden Sie im Thema "Ausländische Eigentum" in der DAO-Hilfe.
m_lDistinctCount
Gibt die Anzahl von eindeutigen Werten für das Index-Objekt, die in der zugehörigen Tabelle enthalten sind. Überprüfen Sie die DistinctCount-Eigenschaft die Anzahl der eindeutigen Werte oder Schlüssel, in einem Index zu bestimmen. Einer beliebigen Taste wird nur einmal gezählt, obwohl es mehrere Vorkommen dieses Werts geben, kann wenn der Index doppelte Werte erlaubt. Diese Informationen sind nützlich bei Anwendungen, die versuchen, den Datenzugriff optimieren durch Auswerten der Indexinformationen. Die Anzahl von eindeutigen Werten ist auch bekannt als die Kardinalität der ein Index-Objekt. Die DistinctCount-Eigenschaft wird nicht immer die tatsächliche Anzahl von Schlüsseln zu einem bestimmten Zeitpunkt wider. Beispielsweise wird eine Änderung durch ein Transaktionsrollback der verursacht nicht sofort in der DistinctCount-Eigenschaft wiedergegeben. Weitere Informationen finden Sie im Thema "DistinctCount-Eigenschaft" in der DAO-Hilfe.
Kommentare
Informationen abgerufen, indem die GetIndexInfo -Memberfunktion des Tabledef-Objekt ist in einer CDaoIndexInfo -Struktur gespeichert. Rufen Sie die GetIndexInfo -Memberfunktion des enthaltenden Tabledef-Objekts in dessen Indexes-Auflistung das Index-Objekt gespeichert ist. CDaoIndexInfo definiert auch eine Memberfunktion Dump in Debug-Builds. Dump können Sie den Inhalt eines CDaoIndexInfo -Objekts.
Informationen über diese und andere MFC DAO-Informationsstrukturen, finden Sie im Artikel DAO-Auflistungen: Ermitteln von Informationen über DAO-Objekte im Visual C++ Programmer's Guide.
Siehe auch&Nbsp;CDaoTableDef::GetIndexInfo