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,索引对象表示主索引。主索引包括在一个唯一标识表中的所有记录按预定义的一个或多个字段。因为索引字段必须是唯一的,索引对象的单个属性来设置为 DAO 的 TRUE 。如果主索引包括多个字段,每个字段能包含重复值,但是,值的每种组合从所有索引的字段必须是唯一的。主索引包括表中的键并通常包含字段和主键相同。

    在设置时表的主键,主键自动定义为表的主索引。有关更多信息,请参见主题 “主要属性”和 “单个属性” DAO 帮助。

    说明说明

    可能存在,至多,表的主索引。

  • m_bUnique
    指出索引对象是否表示表的唯一索引。如果此属性为 TRUE,索引对象表示唯一的索引。唯一索引包括在一个表中的逻辑上用所有记录按唯一的一个或多个字段,预定义的顺序。如果索引包括一个字段,该字段的值必须是唯一的整个表。如果索引包括多个字段,每个字段能包含重复值,但是,值的每种组合从所有索引的字段必须是唯一的。

    如果索引对象的唯一和主要特性设置为 TRUE,索引是唯一和主要的:它在表中唯一标识所有记录在预定义的,逻辑顺序。如果主要属性设置为 FALSE,索引是主索引。主索引 (键和非键) 在表中逻辑上线记录按预定义的顺序,而不用作标识符用作记录。

    有关更多信息,请参见主题 “主要属性”和 “单个属性” DAO 帮助。

  • m_bClustered
    指出索引对象是否表示表的聚集索引。如果此属性为 TRUE,索引对象表示聚集索引;否则,它不。聚集索引中,合起来,在一个表中的所有记录按预定义的一个或多个非键字段。聚集索引中,表中的数据按聚集索引指定的顺序按原义存储。聚集索引提供对记录进行有效的访问在表中。有关更多信息,请参见主题 “clustered 属性” DAO 帮助。

    说明说明

    聚集属性为使用 Microsoft Jet 数据库引擎的数据库被忽略,因为 Jet 数据库引擎不支持聚集索引。

  • m_bIgnoreNulls
    指示是否具有空值的索引字段记录的索引项。如果此属性为 TRUE,使用 NULL 值的一个字段没有索引项。若要从而加快搜索使用记录字段,可以定义字段的索引。如果允许在索引字段的空项并希望多个项为空,可以设置索引对象的 IgnoreNulls 属性设置为 TRUE 减少索引使用的数量的存储空间。设置 IgnoreNulls 的属性、设置所需的属性确定与 null 值的记录是否具有索引项,,如下表所示。

    IgnoreNulls

    必需

    在索引字段的空

    True

    False

    允许空值;不添加的索引项。

    False

    False

    允许空值;添加的索引项。

    True 或 False

    True

    不允许空值;不添加的索引项。

    有关更多信息,请参见主题 IgnoreNulls “属性” DAO 帮助。

  • m_bRequired
    指示 DAO 索引对象是否需要非 null 值。如果此属性为 TRUE索引,对象不允许 null 值。有关更多信息,请参见主题 “必需属性” DAO 帮助。

    提示提示

    可以设置 DAO 索引对象或字段对象的此属性 (包含由 tabledef、记录集或 querydef 对象),将该字段对象的。设置为索引对象的字段对象的属性的有效性之前检查。

  • m_bForeign
    指出索引对象是否在表示表中的外键。如果此属性为 TRUE的索引,在表示表中的外键。外键在一个外部表中包含在一个主表中唯一标识行的一个或多个字段。Microsoft Jet 数据库引擎创建外部表的索引对象并将外部属性,当您创建强制引用完整性的关系时。有关更多信息,请参见主题 “外部属性” DAO 帮助。

  • m_lDistinctCount
    指示在一个关联的表中包含唯一值的数量索引对象的。检查 DistinctCount 属性标识的值或键数量,在索引。所有键一次只计数,因此,即使可能存在该值多次出现时,如果索引许可证重复值。此信息可用于尝试通过计算索引信息优化数据访问应用程序。唯一的值也称为数是索引对象基数。DistinctCount 属性在特定时间永远+不会反映键的实际数目。例如,事务回滚导致的更改不会立即反映在 DistinctCount 属性中。有关更多信息,请参见主题 DistinctCount “属性” DAO 帮助。

备注

对母版,如,因此,所有上述指示信息的方式。在类 CDaoTableDefCDaoRecordsetGetIndexInfo 成员函数返回。

索引对象不是由 MFC 类表示。相反,基础类 CDaoTableDefCDaoRecordset 的 MFC 对象 DAO 对象包含索引对象的集合,调用索引集合。这些类提供成员函数对索引信息访问各个项目,或者您同时也能访问与 CDaoIndexInfo 对象通过调用包含的对象的 GetIndexInfo 成员函数。

CDaoIndexInfo 具有一个构造函数和一个析构函数才能正确分配和释放在 m_pFieldInfos的索引字段信息。

tabledef 对象的 GetIndexInfo 成员函数检索的信息。 CDaoIndexInfo 结构中。调用索引集合索引对象存储包含的 tabledef 对象的 GetIndexInfo 成员函数。CDaoIndexInfo 还定义功能调试版本的一个 Dump 成员。可以使用 Dump 转储 CDaoIndexInfo 对象的内容。

要求

Header: afxdao.h

请参见

参考

CDaoTableDef::GetIndexInfo

其他资源

结构、样式、回调和消息映射