Freigeben über


CDaoIndexInfo-Struktur

Die CDaoIndexInfo-Struktur enthält Informationen dazu Indexobjekt, das für Datenzugriffsobjekte (DAO) definiert ist.

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 
}; 

Parameter

  • m_strName
    Benennt das eindeutig Feldobjekt. Ausführliche Informationen finden Sie im Thema "Name-Eigenschaft" in der DAO-Hilfe.

  • m_pFieldInfos
    Ein Zeiger auf ein Array von CDaoIndexFieldInfo-Objekte das Angeben ein, das Tabledef- oder Recordsetfelder Schlüsselfelder in einem Index sind. Jedes Objekt identifiziert ein Feld im Index. Die Standardindexreihenfolge aufsteigend ist. Ein Indexobjekt kann eine oder mehrere Felder verfügen, die Indexschlüssel für jeden Datensatz darstellen. Diese können aufsteigend, weiter oder eine Kombination sein.

  • m_nFields
    Die Anzahl von Feldern gespeichert in m_pFieldInfos.

  • m_bPrimary
    Wenn die primäre Eigenschaft TRUE ist, stellt das Primärindex Indexobjekt einen dar. Ein Primärindex besteht aus einem oder mehreren Feldern eindeutig, die sämtliche Datensätze einer Tabelle in einer vordefinierten Reihenfolge identifizieren. Da das Indexfeld eindeutig sein muss, wird die eindeutige Eigenschaft des Indexobjekts auch auf TRUE der DAO festgelegt. Wenn der Primärindex aus mehr als einem Feld besteht, kann jedes Feld doppelte Werte enthalten, aber jede Kombination der Werte in allen indizierten Feldern muss eindeutig sein. Ein Primärindex besteht aus einem Schlüssel für die Tabelle und enthält normalerweise die gleichen Felder wie der Primärschlüssel.

    Wenn Sie einen Primärschlüssel für eine Tabelle, die Primärschlüssel automatisch wie der Primärindex für die Tabelle definiert werden. Weitere Informationen finden Sie in den Themen "primäre Eigenschaft" und "Eigenschaft eindeutige" in der DAO-Hilfe.

    Hinweis

    Es kann höchstens einen Primärindex auf einer Tabelle ein.

  • m_bUnique
    Gibt an, ob ein Indexobjekt einen eindeutigen Index für eine Tabelle darstellt. Wenn diese Eigenschaft TRUE ist, stellt das Indexobjekt einen Index dar, der mehrdeutig ist. Ein eindeutiger Index besteht aus einem oder mehreren Feldern, die logisch sämtliche Datensätze einer Tabelle einer eindeutigen, vordefinierten Reihenfolge anordnen. Wenn der Index aus einem Feld besteht, müssen Werte in diesem Feld für die gesamte Tabelle eindeutig sein. Wenn der Index aus mehr als einem Feld besteht, kann jedes Feld doppelte Werte enthalten, aber jede Kombination der Werte in allen indizierten Feldern muss eindeutig sein.

    Wenn die eindeutige und primären Eigenschaften eines Indexobjekts auf TRUE festgelegt ist, ist der Index eindeutig und primär: Sie identifiziert eindeutig alle Datensätze in der Tabelle in einer vordefinierten, logischen Reihenfolge. Wenn die primäre Eigenschaft auf FALSE festgelegt ist, ist der Index ein alternativer Schlüssel. Alternative (beide Schlüssel ver- und Nicht-Schlüssel), ordnen logisch Datensätze in einer vordefinierten Reihenfolge, ohne als Bezeichner für Datensätze in der Tabelle verwenden.

    Weitere Informationen finden Sie in den Themen "primäre Eigenschaft" und "Eigenschaft eindeutige" in der DAO-Hilfe.

  • m_bClustered
    Gibt an, ob ein Indexobjekt einen gruppierten Index für eine Tabelle darstellt. Wenn diese Eigenschaft TRUE ist, stellt das Indexobjekt einen gruppierten Index dar; Andernfalls führt es nicht. Ein gruppierter Index besteht aus einem oder mehrere nicht um Schlüssel zu Feldern, mit denen zusammen entnommen, sämtliche Datensätze einer Tabelle in einer vordefinierten Reihenfolge anordnen. Mit einem gruppierten Index werden die Daten in der Tabelle als solche in der Reihenfolge gespeichert, die von der gruppierten Index angegeben wird. Ein gruppierter Index bietet effiziente Akteneinsicht in einer Tabelle. Weitere Informationen finden Sie, dass das Thema "Eigenschaft" in der DAO-Hilfe gruppierte.

    Hinweis

    Die gruppierten Eigenschaft wird ignoriert für Datenbanken, die das Microsoft Jet-Datenbankmodul verwenden, da das Jet-Datenbank-Modul nicht gruppierter Indizes unterstützt.

  • m_bIgnoreNulls
    Gibt an, ob Indexeinträge für Datensätze gibt, die NULL-Werte auf ihren Indexgebieten haben. Wenn diese Eigenschaft TRUE, über Felder mit NULL-Werten keinen Indexeintrag. Um für Datensätze mithilfe eines Felds schneller finden zu machen, können Sie einen Index für das Feld definieren. Wenn Sie ungültige Einträge auf einen indizierten Feld zulassen und zahlreiche Einträge erwarten, dass NULL zu sein, können Sie die IgnoreNulls-Eigenschaft zum Indexobjekt zu TRUE festlegen, um den Speicherplatz reduzieren, den der Index verwendet. Die IgnoreNulls-Eigenschafteneinstellung und die erforderliche Einstellung bestimmt zusammen, ob ein Datensatz mit einem ungültigen Indexwert einen Indexeintrag verfügt, wie die folgende Tabelle zeigt.

    IgnoreNulls

    Erforderlich

    NULL in dem Indexgebiet

    True

    False

    NULL-Wert zulässig; kein Indexeintrag hinzugefügt.

    False

    False

    NULL-Wert zulässig; Indexeintrag hinzugefügt.

    True oder False

    True

    NULL-Wert unzulässig; kein Indexeintrag hinzugefügt.

    Weitere Informationen finden Sie im Thema "IgnoreNulls-Eigenschaft" in der DAO-Hilfe.

  • m_bRequired
    Gibt an, ob ein DAO-Indexobjekt einen Wert ungleich null ist. Wenn diese Eigenschaft TRUE ist, ermöglicht das Indexobjekt keinen NULL-Wert. Weitere Informationen finden Sie, dass das Thema "Eigenschaft" in der DAO-Hilfe erforderlich.

    Tipp

    Wenn Sie diese Eigenschaft entweder für ein DAO-Indexobjekt oder ein Feldobjekt festlegen können (enthalten durch eine tabledef-, ein Recordset oder ein Querydef-Objekt), legen Sie es für das Feldobjekt fest.Die Gültigkeit der Eigenschafteneinstellung für ein Feldobjekt wird zuvor überprüft wird, die von einem Indexobjekt.

  • m_bForeign
    Gibt an, ob ein Indexobjekt einen Fremdschlüssel in einer Tabelle dar. Wenn diese Eigenschaft TRUE ist, stellt der Index einen Fremdschlüssel in einer Tabelle dar. Bei einem Fremdschlüssel besteht aus einem oder mehreren Feldern in einer eindeutig fremden Tabelle, die eine Zeile in einer Tabelle ermitteln. Das Microsoft Jet-Datenbankmodul erstellt ein Indexobjekt der fremden Tabelle und legt die fremde Eigenschaft fest, wenn Sie eine Beziehung erstellen, die referenzielle Integrität gewährleistet. Weitere Informationen finden Sie im Thema "fremde Eigenschaft" in der DAO-Hilfe.

  • m_lDistinctCount
    Gibt die Anzahl der eindeutigen Werte zum Indexobjekt angezeigt, die in der zugeordneten Tabelle enthalten sind. Überprüfen Sie die DistinctCount-Eigenschaft, um die eindeutigen Werte oder Schlüssel, in einem Index zu bestimmen. Jede beliebige Taste wird nur einmal erfasst, obwohl sie mehrere Vorkommen dieses Werts gibt, wenn die Werte Indexerlaubnis dupliziert. Diese Informationen sind nützlich in Anwendungen, die versuchen, den Datenzugriff zu optimieren, indem Indexinformationen auswerten. Die Anzahl eindeutiger Werte ist auch als Kardinalität eines Indexobjekts. Die DistinctCount-Eigenschaft nicht immer wieder die tatsächliche Anzahl von Tasten zu einem bestimmten Zeitpunkt. Beispielsweise wird eine Änderung, die durch ein Transaktionsrollback verursacht wird, nicht sofort in der DistinctCount-Eigenschaft wiedergegeben. Weitere Informationen finden Sie im Thema "DistinctCount-Eigenschaft" in der DAO-Hilfe.

Hinweise

Die Verweise auf primärem, und einen sekundären alle oben geben an, wie die Informationen durch die GetIndexInfo-Memberfunktion in den Klassen CDaoTableDef und CDaoRecordset zurückgegeben werden.

Indexobjekte werden nicht durch eine MFC-Klasse dargestellt. Stattdessen DAO-Objekte MFC-Objekten enthalten, die der CDaoTableDef oder CDaoRecordset zugrunde liegen, eine Auflistung Indexobjekte, die aufgerufen Indexauflistung. Diese Klassen stellen Memberfunktionen, um auf einzelne Elemente aus Indexinformationen zuzugreifen, oder Sie können mit einem CDaoIndexInfo-Objekt in einem gemeinsam zugreifen, indem Sie die Memberfunktion GetIndexInfo des enthaltenden Objekts aufrufen.

CDaoIndexInfo verfügt über einen Konstruktor und Destruktoren, um den Indexfeldinformationen in m_pFieldInfos korrekt zuzuordnen und freizugeben.

Die Informationen, die durch die GetIndexInfo-Memberfunktion eines Tabledef-Objekts abgerufen werden, werden in einer CDaoIndexInfo-Struktur gespeichert. Rufen Sie die Memberfunktion GetIndexInfo des enthaltenden Tabledef-Objekts auf, in dessen Indexauflistung das Indexobjekt gespeichert wird. CDaoIndexInfo definiert auch eine Dump-Memberfunktion in Debugbuilds. Sie können Dump verwenden, um den Inhalt eines CDaoIndexInfo-Objekts zu speichern.

Anforderungen

Header: afxdao.h

Siehe auch

Referenz

CDaoTableDef::GetIndexInfo

Weitere Ressourcen

Strukturen, Stile, Rückrufe und Meldungszuordnungen