Sdílet prostřednictvím


CDaoIndexInfo – struktura

Struktura CDaoIndexInfo obsahuje informace o objektu indexu definovaném pro objekty přístupu k datům (DAO).

Poznámka:

Rozhraní DAO se podporuje prostřednictvím Office 2013. DAO 3.6 je konečná verze a je považována za za zastaralou.

Syntaxe

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
Jednoznačně pojmenuje objekt pole. Podrobnosti najdete v tématu "Název vlastnosti" v nápovědě k dao.

m_pFieldInfos
Ukazatel na pole CDaoIndexFieldInfo objekty označující, která pole tabulky nebo sady záznamů jsou klíčová pole v indexu. Každý objekt identifikuje jedno pole v indexu. Výchozí pořadí indexů je vzestupné. Objekt indexu může mít jedno nebo více polí představujících klíče indexu pro každý záznam. Můžou to být vzestupné, sestupné nebo kombinované.

m_nFields
Počet polí uložených v m_pFieldInfossouboru .

m_bPrimary
Pokud primární vlastnost je TRUE, index objekt představuje primární index. Primární index se skládá z jednoho nebo více polí, která jednoznačně identifikují všechny záznamy v tabulce v předdefinovaném pořadí. Protože pole indexu musí být jedinečné, vlastnost Unique objektu Index je také nastavena na TRUE v daO. Pokud se primární index skládá z více než jednoho pole, může každé pole obsahovat duplicitní hodnoty, ale každá kombinace hodnot ze všech indexovaných polí musí být jedinečná. Primární index se skládá z klíče tabulky a obvykle obsahuje stejná pole jako primární klíč.

Když nastavíte primární klíč pro tabulku, primární klíč se automaticky definuje jako primární index tabulky. Další informace najdete v tématech "Primární vlastnost" a "Jedinečná vlastnost" v nápovědě k dao.

Poznámka:

V tabulce může být maximálně jeden primární index.

m_bUnique
Určuje, zda objekt indexu představuje jedinečný index tabulky. Pokud je tato vlastnost TRUE, index objekt představuje index, který je jedinečný. Jedinečný index se skládá z jednoho nebo více polí, která logicky uspořádávají všechny záznamy v tabulce v jedinečném předdefinovaném pořadí. Pokud se index skládá z jednoho pole, musí být hodnoty v daném poli jedinečné pro celou tabulku. Pokud se index skládá z více než jednoho pole, může každé pole obsahovat duplicitní hodnoty, ale každá kombinace hodnot ze všech indexovaných polí musí být jedinečná.

Pokud jsou vlastnosti Unique i Primary objektu indexu nastaveny na HODNOTU TRUE, index je jedinečný a primární: Jednoznačně identifikuje všechny záznamy v tabulce v předdefinovaném logickém pořadí. Pokud je primární vlastnost nastavena na FALSE, index je sekundární index. Sekundární indexy (klíč i klíč) logicky uspořádávají záznamy v předdefinovaném pořadí, aniž by sloužily jako identifikátor záznamů v tabulce.

Další informace najdete v tématech "Primární vlastnost" a "Jedinečná vlastnost" v nápovědě k dao.

m_bClustered
Určuje, zda objekt indexu představuje clusterovaný index tabulky. Pokud je tato vlastnost TRUE, index objekt představuje clusterovaný index; v opačném případě to není. Clusterovaný index se skládá z jednoho nebo více polí bez klíče, která seskupují dohromady všechny záznamy v tabulce v předdefinovaném pořadí. V clusterovaném indexu jsou data v tabulce doslova uložená v pořadí určeném clusterovaným indexem. Clusterovaný index poskytuje efektivní přístup k záznamům v tabulce. Další informace najdete v tématu "Clustered Property" (Clusterovaná vlastnost) v nápovědě k dao.

Poznámka:

Vlastnost Clustered je ignorována pro databáze, které používají databázový stroj Microsoft Jet, protože databázový stroj Jet nepodporuje clusterované indexy.

m_bIgnoreNulls
Určuje, zda existují položky indexu pro záznamy, které mají v polích indexu hodnoty Null. Pokud je tato vlastnost TRUE, pole s hodnotami Null nemají položku indexu. Pokud chcete vyhledávání záznamů urychlit pomocí pole, můžete pro pole definovat index. Pokud povolíte položky Null v indexované pole a očekáváte, že mnoho položek bude Null, můžete nastavit IgnoreNulls vlastnost index objektu na HODNOTU TRUE snížit množství úložného prostoru, který index používá. Nastavení vlastnosti IgnoreNulls a nastavení Požadovaná vlastnost společně určují, zda záznam s hodnotou indexu Null má položku indexu, jak ukazuje následující tabulka.

IgnoreNulls Požaduje se Null v poli indexu
True False Povolená hodnota null; nebyla přidána žádná položka indexu.
False False Povolená hodnota null; položka indexu byla přidána.
Pravda nebo Nepravda True Hodnota null není povolena; nebyla přidána žádná položka indexu.

Další informace naleznete v tématu "IgnoreNulls – vlastnost" v nápovědě k dao.

m_bRequired
Určuje, zda objekt indexu DAO vyžaduje hodnotu, která není null. Pokud je tato vlastnost TRUE, objekt indexu nepovoluje hodnotu Null. Další informace najdete v tématu Požadovaná vlastnost v nápovědě k dao.

Tip

Pokud můžete tuto vlastnost nastavit pro objekt indexu DAO nebo objekt pole (obsažený v objektu tabledef, recordset nebo querydef), nastavte ji pro objekt pole. Platnost nastavení vlastnosti pro objekt pole je zaškrtnutá před objektem indexu.

m_bForeign
Určuje, zda index objekt představuje cizí klíč v tabulce. Pokud je tato vlastnost TRUE, index představuje cizí klíč v tabulce. Cizí klíč se skládá z jednoho nebo více polí v cizí tabulce, která jednoznačně identifikují řádek v primární tabulce. Databázový stroj Microsoft Jet vytvoří objekt indexu pro cizí tabulku a nastaví cizí vlastnost při vytváření relace, která vynucuje referenční integritu. Další informace najdete v tématu Cizí vlastnost v nápovědě k dao.

m_lDistinctCount
Určuje počet jedinečných hodnot pro objekt indexu, které jsou zahrnuty v přidružené tabulce. Zkontrolujte vlastnost DistinctCount a určete počet jedinečných hodnot nebo klíčů v indexu. Jakýkoli klíč se počítá pouze jednou, i když může existovat více výskytů této hodnoty, pokud index povoluje duplicitní hodnoty. Tyto informace jsou užitečné v aplikacích, které se pokoušejí optimalizovat přístup k datům vyhodnocením informací indexu. Počet jedinečných hodnot se také označuje jako kardinalita objektu indexu. Vlastnost DistinctCount nebude vždy odrážet skutečný počet klíčů v určitém čase. Například změna způsobená vrácením transakce zpět se neprojeví okamžitě ve vlastnosti DistinctCount. Další informace najdete v tématu "DistinctCount – vlastnost" v nápovědě k dao.

Poznámky

Odkazy na Primary, Secondary a All výše označují, jak jsou informace vráceny GetIndexInfo členské funkce ve třídách CDaoTableDef a CDaoRecordset.

Objekty indexu nejsou reprezentovány třídou MFC. Místo toho objekty DAO podkladové MFC objekty třídy CDaoTableDef nebo CDaoRecordset obsahují kolekci indexových objektů, které se nazývají indexy kolekce. Tyto třídy poskytují členské funkce pro přístup k jednotlivým položkám informací indexu nebo k nim můžete přistupovat všechny najednou pomocí CDaoIndexInfo objektu voláním GetIndexInfo členské funkce obsahujícího objektu.

CDaoIndexInfo má konstruktor a destruktor, aby bylo možné správně přidělit a uvolnit informace o poli indexu v m_pFieldInfos.

Informace načtené GetIndexInfo členovou funkcí objektu tabledef jsou uloženy ve struktuře CDaoIndexInfo . GetIndexInfo Volání členské funkce obsahující objekt tabledef, ve které indexy kolekce index objektu je uložen. CDaoIndexInfo také definuje členovou Dump funkci v buildech ladění. Můžete použít Dump k výpisu obsahu objektu CDaoIndexInfo .

Požadavky

Záhlaví: afxdao.h

Viz také

Struktury, styly, zpětná volání a mapy zpráv
CDaoTableDef::GetIndexInfo