共用方式為


CDaoIndexInfo 結構

CDaoIndexInfo結構包含索引物件為資料存取物件 (DAO) 所定義的相關資訊。

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

參數

  • m_strName
    唯一命名的欄位物件。 如需詳細資訊,請參閱"Name"DAO 說明 》 的主題。

  • m_pFieldInfos
    變數的指標陣列, CDaoIndexFieldInfo 指出哪些 tabledef 或資料錄集欄位為索引鍵的欄位索引中的物件。 每個物件識別在索引中的一個欄位。 預設的索引順序遞增。 索引物件可以具有一或多個代表每一筆記錄的索引鍵的欄位。 這些可以遞增,遞減,甚或是兩者合併。

  • m_nFields
    儲存在中的欄位數目m_pFieldInfos

  • m_bPrimary
    如果主索引] 屬性是 ,則為 TRUE,該索引物件所代表的主索引鍵。 唯一識別預先定義的順序中的資料表中的所有記錄的一或多個欄位所組成的主索引鍵。 Index 功能變數必須是唯一的因為索引物件的 [唯一] 屬性也會設定為 ,則為 TRUE 在 dao 裡。 如果主索引鍵是由多個欄位所組成,每個欄位可以包含重複的值,,但每個索引的所有欄位的值的組合必須是唯一的。 主索引鍵資料表的索引鍵所組成,通常會包含相同的欄位為主索引鍵。

    當您設定資料表的主索引鍵時,會自動將主索引鍵定義為資料表的主索引。 如需詳細資訊,請參閱 「 主索引] 屬性 」 和 「 唯一的屬性"DAO 說明 》 主題。

    注意事項注意事項

    可以有,一般而言,一個資料表的主索引鍵。

  • m_bUnique
    指示索引物件是否表示資料表的唯一索引。 如果這個屬性是 ,則為 TRUE,該索引物件所代表的是唯一的索引。 唯一索引包含一個或多個欄位,以邏輯方式安排所有的資料錄的資料表中唯一的而預先定義的順序。 若欄位中包含的其中一個欄位,該欄位中的值必須是唯一的整張表格。 如果欄位中包含多個欄位,每個欄位可以包含重複的值,,但每個索引的所有欄位的值的組合必須是唯一的。

    如果將 [唯一與主要物件屬性的索引設定為 [ ,則為 TRUE,索引是唯一的且主要: 它會獨特識別預先定義的邏輯順序中的資料表中的所有記錄。 如果主索引] 屬性設定為 ,則為 FALSE,此索引為次要的索引。 次要索引 (索引鍵和非索引鍵) 以邏輯方式排列記錄,以預先定義的順序,而不做為資料表中記錄的識別項。

    如需詳細資訊,請參閱 「 主索引] 屬性 」 和 「 唯一的屬性"DAO 說明 》 主題。

  • m_bClustered
    指示索引物件是否表示資料表的叢集的索引。 如果這個屬性是 ,則為 TRUE,索引物件代表一個叢集的索引。 否則,它並沒有。 叢集的索引由一個或多個 nonkey 欄位、 數位簽章排列預先定義的順序中的資料表中的所有記錄。 有叢集索引,資料表中的資料解譯為常值會儲存叢集索引所指定的順序。 叢集的索引提供的有效存取資料表中的資料錄。 如需詳細資訊,請參閱 DAO 說明 》 的 「 叢集屬性 」 的主題。

    注意事項注意事項

    [叢集] 屬性會被忽略,因為 Jet 資料庫引擎不支援叢集的索引,請使用 Microsoft Jet 資料庫引擎資料庫。

  • m_bIgnoreNulls
    表示是否有 Null 值,其索引欄位之中的資料錄的索引項目。 如果這個屬性是 ,則為 TRUE,具 Null 值的欄位不一定索引項目。 若要使搜尋速度更快的使用欄位所有記錄,您可以定義欄位的索引。 若要讓索引的欄位中輸入數個為 Null 的項目,您可以設定 [忽略 Null] 屬性來索引物件的 ,則為 TRUE 以減低該索引所使用的儲存空間。 [忽略 Null] 屬性設定及必要的屬性設定可同時決定具有 Null 索引值的資料錄是否有索引項目,如下列資料表所示。

    忽略 Null

    必要項

    在 [索引] 欄位為 null

    True

    False

    此 null 值。 任何加入的索引項目。

    False

    False

    此 null 值。 新增索引項目。

    True 或 False

    True

    不允許 ; null 值 任何加入的索引項目。

    如需詳細資訊,請參閱 DAO 說明 》 的 「 忽略 Null 屬性 」 的主題。

  • m_bRequired
    指出 DAO 索引物件是否需要非 Null 值。 如果這個屬性是 ,則為 TRUE,索引物件不允許 Null 值。 如需詳細資訊,請參閱 DAO 說明 》 的"必須有屬性 」 的主題。

    提示

    當您可以設定這個屬性的 DAO 索引物件或 field 物件 (包含受 tabledef、 資料錄集或一個 querydef 物件裡) 時,請將它設定 field 物件。Field 物件的屬性設定值的有效性檢查之前的索引物件。

  • m_bForeign
    指示索引物件是否表示資料表的外部索引鍵。 如果這個屬性是 ,則為 TRUE,索引表示資料表的外部索引鍵。 外部索引鍵是由一或多個外部資料表中唯一可識別欄位在主資料表中的資料列所組成。 Microsoft Jet 資料庫引擎建立外部索引資料表的索引物件,並設定外部索引的屬性,當您建立會強制參照完整性的關聯性。 如需詳細資訊,請參閱 DAO 說明 》 的 「 外部索引屬性 」 的主題。

  • m_lDistinctCount
    指示索引物件關聯的資料表中所包含的唯一值的數目。 請檢查 DistinctCount 屬性,判斷唯一的值或機碼,在索引中的數目。 雖然會有多次出現的那個值如果索引中允許重複的值時,就會一次,計算任意鍵。 這項資訊是用於嘗試評估索引資訊以最佳化資料存取的應用程式。 唯一數值個數又稱做為索引物件的基數。 DistinctCount 屬性才會永遠反映實際的金鑰數目在特定的時間。 比方說,由交易復原所造成的變更將不會反映立即在 [DistinctCount] 屬性。 如需詳細資訊,請參閱 DAO 說明 》 的 「 DistinctCount 屬性 」 的主題。

備註

主要、 次要和所有上述參考表示傳回的資訊如何GetIndexInfo類別中的成員函式 CDaoTableDefCDaoRecordset

索引物件並不表示由 MFC 類別。 相反地,DAO 物件基礎的 MFC 物件類別的 CDaoTableDefCDaoRecordset 包含稱為索引集合的索引物件的集合。 這些類別提供成員函式來存取個別的索引資訊的項目,或者您也可以存取它們全部的CDaoIndexInfo物件藉由呼叫GetIndexInfo包含物件的成員函式。

CDaoIndexInfo有一個建構函式和解構函式,以正確地配置及解除配置中的索引欄位資訊m_pFieldInfos

所擷取的資訊GetIndexInfo tabledef 物件的成員函式會儲存在CDaoIndexInfo結構。 呼叫GetIndexInfo索引物件會儲存其索引集合中包含的 tabledef 物件的成員函式。 CDaoIndexInfo也會定義Dump成員函式,在偵錯組建。 您可以使用Dump來傾印內容的CDaoIndexInfo物件。

需求

標頭: afxdao.h

請參閱

參考

CDaoTableDef::GetIndexInfo

其他資源

結構、 樣式、 回呼和訊息對應