Структура 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
Если основное свойство Истина, то объект индекса представляет первичный индекс.Первичный индекс состоит из одного или нескольких полей, уникальным образом определяющих все записи в таблице в предопределенном порядке.Так как поле индекса должно быть уникальным, уникальное свойство объекта индекса также задается в Истина в DAO.Если первичный индекс состоит из нескольких полей, каждое поле может содержать повторяющиеся значения, но значения каждого сочетания из всех индексированных полей должны быть уникальными.Первичный индекс состоит из клавиш для таблицы и обычно содержит одни и те же поля в качестве первичного ключа.При установке первичный ключ для таблицы первичный ключ автоматически определяется как первичный индекс для таблицы.Дополнительные сведения см. в разделах primary «свойство» и «свойство unique» в Справке DAO.
Примечание Могут иметь, по крайней мере, один столбец первичного индекса таблицы.
m_bUnique
Указывает, представляет ли объект индекса уникального индекса для таблицы.Если это свойство Истина, то объект индекса, представляющий индекс, который является уникальным.Уникальный индекс состоит из одного или нескольких полей, которые логически аранжируют все записи в таблице уникален, предопределенном порядке.Если индекс состоит из одного поля, то значения в этом поле должно быть уникальным для всей таблицы.Если индекс состоит из нескольких полей, каждое поле может содержать повторяющиеся значения, но значения каждого сочетания из всех индексированных полей должны быть уникальными.Если первичные и уникальные и свойства объекта присваивается Истина индекса, то индекс уникальным и первичен: Оно уникально определяющий все записи в таблице в предопределенном, логическом порядке.Если основное свойство имеет значение Ложь, то индекс вторичный индекс.Вторичные индексы и ключи (неключевыми) и логически аранжируют записи в предопределенном порядке без образуя идентификатор для записей в таблице.
Дополнительные сведения см. в разделах primary «свойство» и «свойство unique» в Справке DAO.
m_bClustered
Указывает, представляет ли объект индекса кластеризованного индекса для таблицы.Если это свойство Истина, то объект индекса, представляющий кластеризованный индекс; в противном случае он не поддерживает.Кластеризованный индекс состоит из одного или нескольких полей, принимаемых неключевых, совместно аранжируют все записи в таблице в предопределенном порядке.С кластеризованным индексом, данные в таблице буквально, хранятся в порядке, соответствующем кластеризованным индексом.Кластеризованный индекс обеспечивает эффективный доступ к записям в таблице.Дополнительные сведения см. в разделе clustered «свойство» в Справке DAO.Примечание Кластеризованные свойство не учитывается для баз данных, использующих компонента database engine для jet (Майкрософт), поскольку ядро базы данных jet не поддерживает кластеризованные индексы.
m_bIgnoreNulls
Указывает, является ли элементы указателя для записей, которые содержат значение NULL в полях индекса.Если это свойство Истина, поля со значением NULL не имеют элемент указателя.Чтобы выполнить поиск записей с помощью поля быстрее, можно указать индекс для поля.Если при предоставлении записи со значением null в индексированного поля и как много записей, чтобы содержать значения null, можно установить свойство IgnoreNulls для объекта индекса с Истина для уменьшения объема пространства хранения, использующего индекс.Свойство IgnoreNulls параметра и обязательный параметр свойства в сочетании определяют, имеет ли запись с нулевым значение индекса элемента указателя, как показано в следующей таблице.Iface
Требуется
Null в поле индекса
True
False
Допустимое значение NULL; отсутствие добавленного элемента указателя.
False
False
Допустимое значение NULL; добавленный элемент указателя.
True или False.
True
Не разрешено значение NULL; отсутствие добавленного элемента указателя.
Дополнительные сведения см. в разделе «свойство IgnoreNulls» в Справке DAO.
m_bRequired
Указывает, требует ли объект индекса DAO значений, отличных от null.Если это свойство Истина, то объект индекса не допускает значения NULL.Дополнительные сведения см. в разделе «обязательные свойства» в Справке DAO.Совет Если установить это свойство или объекта индекса DAO или объекта поля (, который содержит tabledef, набором записей или объектом QueryDef) задайте для объекта поля.Параметр допустимости свойства объекта проверяется до поля, объекта индекса.
m_bForeign
Указывает, представляет ли объект индекса внешний ключ в таблице.Если это свойство Истина, то индекс представляет внешний ключ в таблице.Внешний ключ состоит из одного или нескольких полей во внешней таблице, которые однозначно определяют строку в первичной таблице.Компонент database engine для jet (Майкрософт) создает объект индекса для внешней таблицы и устанавливает свойство чужое при создании связи, которое обеспечивает ссылочную целостность.Дополнительные сведения см. в подразделе «чужое свойство» в Справке DAO.m_lDistinctCount
Указывает количество уникальных значений для объекта индекса, включенных в связанной таблице.Проверьте свойство DistinctCount для указания количества уникальных значений или клавиш в индексе.Любая клавиша учитывается только один раз, даже если может быть несколько вхождений того, для значения в том случае, если индекс допускает появление повторяющихся значений.Эти сведения полезны в приложениях, которые пытаются оптимизировать доступ к данным, оценка индексных данных.Количество уникальных значений также называют число элементов объекта индекса.DistinctCount свойство не всегда будет отражать фактическое число клавиш в указанное время.Например, не отражается изменение, вызванное откатом транзакции непосредственно в свойстве DistinctCount.Дополнительные сведения см. в разделе «свойство DistinctCount» в Справке DAO.
Заметки
Ссылки на первичный и вторичный и всем выше показано, как сведения возвращаются функцией-членом GetIndexInfo в классах CDaoTableDef и CDaoRecordset.
Объекты индекса не представляются классом MFC.Вместо этого объекты, находящиеся в основе MFC DAO объекты класса CDaoTableDef или CDaoRecordset содержат коллекцию объектов, называемую индекса, коллекция индексов.Эти классы предоставляют функции-члены для доступа к отдельным элементам данных индекса или можно получить доступ к их непосредственно с объектом CDaoIndexInfo, вызвав функцию-член GetIndexInfo содержащего его объекта.
CDaoIndexInfo содержит конструктор и деструкторы для правильного выделения и deallocate данные полей индекса в m_pFieldInfos.
Сведения GetIndexInfo полученное функцией-членом объекта tabledef хранится в структуре CDaoIndexInfo.Вызовите функцию-член GetIndexInfo вмещающего объекта tabledef, в котором хранится объект коллекции индексов индекса.CDaoIndexInfo также определяет функции-члена Dump в отладочные построения.Можно использовать Dump чтобы сбросить содержимое объекта CDaoIndexInfo.
Требования
Header: afxdao.h