Поделиться через


Структура 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
    Уникальные имена объект поля. Дополнительные сведения см. в разделе «свойство» Имя» в справке DAO.

  • m_pFieldInfos
    Указатель на массив объектов CDaoIndexFieldInfo, отображение поля tabledef или набора записей ключевые поля в индексе. Каждый объект определяет одно поле в индексе. Упорядочение индекса по умолчанию восходящ. Объект индекса может иметь одно или несколько полей, представляющий ключи индекса для каждой записи. Это могут быть можно, по убыванию, или их сочетание.

  • m_nFields
    Количество полей, хранящиеся в m_pFieldInfos.

  • m_bPrimary
    Если основное свойство TRUE, объект индекса представляет первичный индекс. Первичный индекс состоит из одного или нескольких полей, которые уникально идентифицируют все записи в таблице в предопределенном порядке. Поскольку поле индекса должно быть уникальным, уникальное свойство объекта индекса также равно TRUE в DAO. Если первичный индекс состоит из более чем одного поля, то каждое поле может содержать повторяющиеся значения, но значения каждой комбинации из из всех индексированных полей должны быть уникальными. Индекс состоит из первичного ключа для таблицы и обычно содержит те же поля, как первичный ключ.

    При задании первичный ключ для таблицы, первичный ключ автоматически определяются как первичный индекс для таблицы. Дополнительные сведения см. в разделах «основные свойства» и «уникальное свойство» в справке DAO.

    Примечание

    Могут быть, по крайней мере, один первичный индекс для таблицы.

  • m_bUnique
    Указывает, представляет ли объект индекса уникального индекса для таблицы. Если это свойство имеет значение TRUE, то объект индекса, который представляет индекс уникальным. Уникальный индекс состоит из одного или нескольких полей, которые логически располагать все записи в таблице в уникальном, предопределенном порядке. Если индекс состоит из одного поля, значения в поле должны быть уникальными для всей таблицы. Если индекс состоит из более чем одного поля, то каждое поле может содержать повторяющиеся значения, но значения каждой комбинации из из всех индексированных полей должны быть уникальными.

    Если и уникальным и основные свойства объекта индекса имеет значение TRUE, то индекс уникальным и основной: Он однозначно определяет все записи в таблице в предопределенном порядке, логических. Если первичное свойство имеет значение ЛОЖЬ, то индекс вторичный индекс. Вторичные индексы (и ключевой nonkey) и логические записи располагать в предопределенном порядке без использования ее в качестве идентификатора записей в таблице.

    Дополнительные сведения см. в разделах «основные свойства» и «уникальное свойство» в справке DAO.

  • m_bClustered
    Указывает, представляет ли объект индекса кластеризованный индекс для таблицы. Если это свойство имеет значение TRUE, то объект индекса представляет кластеризованный индекс; в противном случае он не существует. Кластеризованный индекс состоит из одного или нескольких полей, nonkey, принятых вместе располагать все записи в таблице в предопределенном порядке. С кластеризованным индексом, данные в таблице буквально хранятся в порядке, указанном кластеризованным индексом. Кластеризованный индекс обеспечивает эффективный доступ к записям в таблице. Дополнительные сведения см. в разделе «свойство, связанных» в справке DAO.

    Примечание

    Связанное свойство игнорируется для баз данных, использующих ядра СУБД Microsoft Jet, поскольку обработчик базы данных jet не поддерживает кластеризованные индексы.

  • m_bIgnoreNulls
    Указывает, является ли элементы указателя для записи, имеющие значения NULL в полях их индекса. Если это свойство имеет значение TRUE, то поля со значениями NULL не имеют элемент указателя. Чтобы выполнить поиск записей с помощью поле быстрее, можно указать индекс для поля. Если разрешить NULL записи в индексированном поле и ожидается большое количество записей, чтобы быть NULL, можно установить IgnoreNulls для объекта индекса с TRUE, чтобы уменьшить объем дискового пространства, индекс использует. Параметр свойства IgnoreNulls и обязательный параметр свойства и определяет, имеет ли запись с нулевым значением индекса элемент указателя, как показано в следующей таблице.

    IgnoreNulls

    Обязательная?

    Значение NULL в поле индекса

    True

    False

    Допускается значение NULL; без этого элемента указателя.

    False

    False

    Допускается значение NULL; добавлен элемент указателя.

    True или False.

    True

    Не допускается значение NULL; без этого элемента указателя.

    Дополнительные сведения см. в разделе «свойство 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.

Заметки

Ссылки на первичный, вторичный и всем выше показано, как сведения возвращаются функцией-членом GetIndexInfo в классах CDaoTableDef и CDaoRecordset.

Объекты индекса не представлены классом MFC. Вместо этого объекты DAO основного объекты в основе MFC класса CDaoTableDef или CDaoRecordset содержат коллекцию объектов индекса, которая коллекция индексов. Эти классы предоставляют функции-члены доступа к отдельным элементам данных индекса, или можно получить все они непосредственно с объектом CDaoIndexInfo путем вызова функции-члена GetIndexInfo, содержащего объекта.

CDaoIndexInfo имеет конструкторы и деструкторы для правильного выделения и отмены сведения полей индекса в m_pFieldInfos.

Сведения, функцией-членом GetIndexInfo объекта tabledef хранятся в структуре CDaoIndexInfo. Вызовите функцию-член объекта tabledef GetIndexInfo, в котором хранится индексов коллекции объект индекса. CDaoIndexInfo также определяет функции-члена Dump выполняется в режиме построения. Можно использовать Dump сбросить содержимое объекта CDaoIndexInfo.

Требования

Header: afxdao.h

См. также

Ссылки

CDaoTableDef::GetIndexInfo

Другие ресурсы

Структуры, стили, обратные вызовы и схемы сообщений