Udostępnij za pośrednictwem


CDaoIndexInfo — Struktura

Struktura CDaoIndexInfo zawiera informacje o obiekcie indeksu zdefiniowanym dla obiektów dostępu do danych (DAO).

Składnia

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

Parametry

m_strName
Unikatowe nazwy obiektu pola. Aby uzyskać szczegółowe informacje, zobacz temat "Name Property" (Nazwa właściwości) w pomocy dao.

M_pfieldinfos
Wskaźnik do tablicy obiektów CDaoIndexFieldInfo wskazujących, które pola tabelidef lub zestawu rekordów są kluczowymi polami w indeksie. Każdy obiekt identyfikuje jedno pole w indeksie. Domyślna kolejność indeksów jest rosnąca. Obiekt indeksu może zawierać co najmniej jedno pole reprezentujące klucze indeksu dla każdego rekordu. Mogą to być rosnąco, malejąco lub kombinacja.

M_nfields
Liczba pól przechowywanych w pliku m_pFieldInfos.

m_bPrimary
Jeśli właściwość Primary ma wartość TRUE, obiekt indeksu reprezentuje indeks podstawowy. Indeks podstawowy składa się z co najmniej jednego pola, które jednoznacznie identyfikują wszystkie rekordy w tabeli w wstępnie zdefiniowanej kolejności. Ponieważ pole indeksu musi być unikatowe, właściwość Unique obiektu Index jest również ustawiona na wartość TRUE w dao. Jeśli indeks podstawowy składa się z więcej niż jednego pola, każde pole może zawierać zduplikowane wartości, ale każda kombinacja wartości ze wszystkich indeksowanych pól musi być unikatowa. Indeks podstawowy składa się z klucza tabeli i zwykle zawiera te same pola co klucz podstawowy.

Po ustawieniu klucza podstawowego dla tabeli klucz podstawowy jest automatycznie definiowany jako indeks podstawowy dla tabeli. Aby uzyskać więcej informacji, zobacz tematy "Właściwość podstawowa" i "Unikatowa właściwość" w Pomocy dao.

Uwaga

W tabeli może znajdować się co najwyżej jeden indeks podstawowy.

m_bUnique
Wskazuje, czy obiekt indeksu reprezentuje unikatowy indeks dla tabeli. Jeśli ta właściwość ma wartość TRUE, obiekt indeksu reprezentuje indeks, który jest unikatowy. Unikatowy indeks składa się z co najmniej jednego pola, które logicznie rozmieszczają wszystkie rekordy w tabeli w unikatowej, wstępnie zdefiniowanej kolejności. Jeśli indeks składa się z jednego pola, wartości w tym polu muszą być unikatowe dla całej tabeli. Jeśli indeks składa się z więcej niż jednego pola, każde pole może zawierać zduplikowane wartości, ale każda kombinacja wartości ze wszystkich indeksowanych pól musi być unikatowa.

Jeśli zarówno unikatowe, jak i podstawowe właściwości obiektu indeksu są ustawione na wartość TRUE, indeks jest unikatowy i podstawowy: unikatowo identyfikuje wszystkie rekordy w tabeli w wstępnie zdefiniowanej kolejności logicznej. Jeśli właściwość Primary ma wartość FALSE, indeks jest indeksem pomocniczym. Indeksy pomocnicze (zarówno klucz, jak i nieklucz) logicznie rozmieszczają rekordy w wstępnie zdefiniowanej kolejności, nie służąc jako identyfikator rekordów w tabeli.

Aby uzyskać więcej informacji, zobacz tematy "Właściwość podstawowa" i "Unikatowa właściwość" w Pomocy dao.

m_bClustered
Wskazuje, czy obiekt indeksu reprezentuje indeks klastrowany dla tabeli. Jeśli ta właściwość ma wartość TRUE, obiekt indeksu reprezentuje indeks klastrowany; w przeciwnym razie nie. Indeks klastrowany składa się z co najmniej jednego pola innego niżkey, które wspólnie rozmieszczają wszystkie rekordy w tabeli w wstępnie zdefiniowanej kolejności. W przypadku indeksu klastrowanego dane w tabeli są przechowywane dosłownie w kolejności określonej przez indeks klastrowany. Indeks klastrowany zapewnia wydajny dostęp do rekordów w tabeli. Aby uzyskać więcej informacji, zobacz temat "Właściwość klastrowana" w pomocy dao.

Uwaga

Właściwość Clustered jest ignorowana dla baz danych korzystających z aparatu bazy danych Microsoft Jet, ponieważ aparat bazy danych Jet nie obsługuje indeksów klastrowanych.

m_bIgnoreNulls
Wskazuje, czy istnieją wpisy indeksu dla rekordów, które mają wartości null w swoich polach indeksu. Jeśli ta właściwość ma wartość TRUE, pola z wartościami null nie mają wpisu indeksu. Aby szybciej wyszukiwać rekordy przy użyciu pola, możesz zdefiniować indeks dla pola. Jeśli zezwolisz na wpisy null w indeksowanym polu i oczekujesz, że wiele wpisów ma wartość Null, możesz ustawić właściwość IgnoreNulls dla obiektu indeksu na wartość TRUE, aby zmniejszyć ilość miejsca do magazynowania używanego przez indeks. Ustawienie właściwości IgnoreNulls i wymagane ustawienie właściwości określają, czy rekord z wartością indeksu null ma wpis indeksu, jak pokazano w poniższej tabeli.

IgnoreNulls Wymagania Wartość null w polu indeksu
Prawda Fałsz Dozwolona wartość null; brak dodanego wpisu indeksu.
Fałsz Fałsz Dozwolona wartość null; Dodano wpis indeksu.
True lub False Prawda Niedozwolona wartość null; brak dodanego wpisu indeksu.

Aby uzyskać więcej informacji, zobacz temat "IgnoreNulls Property" (Właściwość IgnoreNulls) w pomocy dao.

m_bRequired
Wskazuje, czy obiekt indeksu DAO wymaga wartości innej niż null. Jeśli ta właściwość ma wartość TRUE, obiekt indeksu nie zezwala na wartość Null. Aby uzyskać więcej informacji, zobacz temat "Wymagana właściwość" w pomocy dao.

Napiwek

Jeśli można ustawić tę właściwość dla obiektu indeksu DAO lub obiektu pola (zawartego przez obiekt tabledef, recordset lub querydef), ustaw ją dla obiektu pola. Ważność ustawienia właściwości dla obiektu pola jest sprawdzana przed obiektem indeksu.

m_bForeign
Wskazuje, czy obiekt indeksu reprezentuje klucz obcy w tabeli. Jeśli ta właściwość ma wartość TRUE, indeks reprezentuje klucz obcy w tabeli. Klucz obcy składa się z co najmniej jednego pola w obcej tabeli, które jednoznacznie identyfikują wiersz w tabeli podstawowej. Aparat bazy danych Microsoft Jet tworzy obiekt indeksu dla tabeli obcej i ustawia właściwość Foreign podczas tworzenia relacji, która wymusza integralność referencyjną. Aby uzyskać więcej informacji, zobacz temat "Właściwość zagraniczna" w pomocy DAO.

m_lDistinctCount
Wskazuje liczbę unikatowych wartości dla obiektu indeksu, które znajdują się w skojarzonej tabeli. Sprawdź właściwość DistinctCount, aby określić liczbę unikatowych wartości lub kluczy w indeksie. Każdy klucz jest liczone tylko raz, mimo że może istnieć wiele wystąpień tej wartości, jeśli indeks zezwala na zduplikowane wartości. Te informacje są przydatne w aplikacjach, które próbują zoptymalizować dostęp do danych, oceniając informacje o indeksie. Liczba unikatowych wartości jest również znana jako kardynalność obiektu indeksu. Właściwość DistinctCount nie zawsze odzwierciedla rzeczywistą liczbę kluczy w określonym czasie. Na przykład zmiana spowodowana wycofaniem transakcji nie zostanie odzwierciedlona natychmiast we właściwości DistinctCount. Aby uzyskać więcej informacji, zobacz temat "DistinctCount Property" (Właściwość DistinctCount) w pomocy języka DAO.

Uwagi

Odwołania do podstawowej, pomocniczej i wszystkich powyżej wskazują, jak informacje są zwracane przez GetIndexInfo funkcję składową w klasach CDaoTableDef i CDaoRecordset.

Obiekty indeksu nie są reprezentowane przez klasę MFC. Zamiast tego obiekty DAO bazowe obiekty MFC klasy CDaoTableDef lub CDaoRecordset zawierają kolekcję obiektów indeksu nazywanych kolekcją indeksów. Klasy te dostarczają funkcje składowe w celu uzyskania dostępu do poszczególnych elementów informacji o indeksie lub można uzyskać do nich dostęp jednocześnie z obiektem CDaoIndexInfo przez wywołanie GetIndexInfo funkcji składowej obiektu zawierającego.

CDaoIndexInfo ma konstruktora i destruktora w celu prawidłowego przydzielenia i cofnięcia przydziału informacji o polu indeksu w programie m_pFieldInfos.

Informacje pobierane przez GetIndexInfo funkcję składową obiektu tabledef są przechowywane w CDaoIndexInfo strukturze. Wywołaj GetIndexInfo funkcję składową obiektu zawierającego obiekt tabledef w kolekcji Indeksy, w którym jest przechowywany obiekt indeksu. CDaoIndexInfo Definiuje również funkcję składową Dump w kompilacjach debugowania. Możesz użyć Dump polecenia , aby zrzucić zawartość CDaoIndexInfo obiektu.

Wymagania

Nagłówek: afxdao.h

Zobacz też

Struktury, style, wywołania zwrotne i mapy komunikatów
CDaoTableDef::GetIndexInfo