Estructura CDaoIndexInfo

La estructura de CDaoIndexInfo tiene el siguiente formulario:

struct CDaoIndexInfo {}
 nbsp;  (De CDaoIndexInfo);                   / / Constructor

CString m_str&Name;                  / / Primario
    CDaoIndexFieldInfo * m_pFieldInfos;  / / Primario
    m_nFields corto;                    / / Primario
    BOOL m_bPrimary;                    / / Secundario
    BOOL m_bUnique;                     / / Secundario
    BOOL m_bClustered;                  / / Secundario
    BOOL m_bIgnoreNulls;                / / Secundario
    BOOL m_bRequired;                   / / Secundario
    BOOL m_bForeign;                    / / Secundario
    m_lDistinctCount largo;              / / Todos

/ / Abajo el / / comentario de aplicación:
    / / Destructor, no documentado
}
 

La estructura de CDaoIndexInfo contiene información sobre un objeto de índice definido para data access objects (DAO). Las referencias a la primaria, secundaria y todos por encima de indican cómo la información es devuelto por la función de miembro de GetIndexInfo en las clases CDaoTableDef y CDaoRecordset.

Índice de objetos no están representados por una clase MFC. En su lugar, objetos DAO MFC objetos de clase CDaoTableDef o CDaoRecordset subyacentes contienen una colección de objetos de índice, llamado la colección de índices. Estas clases suministrar funciones miembro para acceder a elementos individuales de la información de índice, o puede acceder a ellos a la vez con un objeto de CDaoIndexInfo llamando a la función miembro GetIndexInfo del objeto que contiene.

CDaoIndexInfo tiene un constructor y un destructor para asignar y desasignar la información de campo de índice de m_pFieldInfos correctamente.

Miembros

m_strName

Designa inequívocamente el objeto field. Para obtener más información, vea el tema "Propiedad Name" en la ayuda de DAO.

m_pFieldInfos

Un puntero a una matriz de objetos CDaoIndexFieldInfo que indica qué campos tabledef o recordset son campos clave en un índice. Cada objeto identifica un campo en el índice. El orden de índice predeterminado es ascendente. Un objeto index puede tener uno o más campos que representan las claves de índice para cada registro. Estos pueden ser ascendente, descendente, o una combinación.

m_nFields

El número de campos almacenados en m_pFieldInfos.

m_bPrimary

Si la propiedad principal es TRUE, el objeto índice representa un índice primario. Un índice principal consta de uno o más campos que identifican todos los registros de una tabla en un orden predefinido. Porque el campo de índice debe ser único, la única propiedad del objeto índice también se establece en TRUE en DAO. Si el índice principal se compone de más de un campo, cada campo puede contener valores duplicados, pero cada combinación de valores de todos los campos indizados debe ser único. Un índice principal consta de una clave de la tabla y normalmente contiene los mismos campos como clave principal.

Cuando se establece una clave principal para una tabla, la clave principal se define automáticamente como el índice principal de la tabla. Para obtener más información, vea los temas "Bienes primarios" y "Propiedad exclusiva" en la ayuda de DAO.

&Notanbsp;  Puede haber, a lo sumo, un índice principal en una tabla.

m_bUnique

Indica si un objeto índice representa un índice único para una tabla. Si esta propiedad es TRUE, el objeto índice representa un índice único. Un índice único consta de uno o más campos que lógicamente organizar todos los registros de una tabla en un único orden predefinido. Si el índice se compone de un campo, los valores de ese campo deben ser únicos para toda la tabla. Si el índice se compone de más de un campo, cada campo puede contener valores duplicados, pero cada combinación de valores de todos los campos indizados debe ser única.

Si el único y principal propiedades de un objeto index se establece en TRUE, el índice es el único y principal: identifica todos los registros de la tabla en un orden predefinido, lógico. Si la propiedad principal está establecida en FALSE, el índice es un índice secundario. Índices secundarios (claves y nonkey) lógicamente organizar registros en un orden predefinido sin que actúa como un identificador de registros de la tabla.

Para obtener más información, vea los temas "Bienes primarios" y "Propiedad exclusiva" en la ayuda de DAO.

m_bClustered

Indica si un objeto índice representa un índice agrupado en una tabla. Si esta propiedad es TRUE, el objeto índice representa un índice agrupado; de lo contrario, no. Un índice agrupado se compone de uno o más nonkey campos que, tomados en conjunto, organizar todos los registros de una tabla en un orden predefinido. Con un índice agrupado, los datos de la tabla literalmente se almacenan en el orden especificado por el índice agrupado. Un índice agrupado proporciona acceso eficaz a los registros de una tabla. Para obtener más información, vea el tema "Propiedad agrupados" en la ayuda de DAO.

&Notanbsp;  Se omite la propiedad Clustered para bases de datos que utilizan el motor de base de datos de Microsoft Jet porque el motor de base de datos Jet no admite índices agrupados.

m_bIgnoreNulls

Indica si hay entradas de índice para los registros que contengan valores nulos en sus campos de índice. Si esta propiedad es TRUE, los campos con valores Null no tiene una entrada de índice. Para buscar registros utilizando un campo más rápido, puede definir un índice para el campo. Si permitir entradas Null en un campo indizado y esperar que muchas de las entradas a ser nulo, puede establecer la propiedad IgnoreNulls del objeto de índice en TRUE para reducir la cantidad de espacio de almacenamiento que utiliza el índice. El valor de la propiedad IgnoreNulls y el valor de la propiedad requerida juntos determinan si un registro con un valor de índice Null tiene una entrada de índice, como se muestra en la siguiente tabla.

IgnoreNulls Obligatorio NULL en el campo de índice
Verdadero Falso Valor NULL permitido; ninguna entrada de índice agregada.
Falso Falso Valor NULL permitido; entrada de índice agregado.
Verdadero o falso Verdadero Valor nulo no permitido; ninguna entrada de índice agregada.

Para obtener más información, vea el tema "Propiedad de IgnoreNulls" en la ayuda de DAO.

m_bRequired

Indica si un objeto DAO de índice requiere un valor no nulo.Si esta propiedad es TRUE, el objeto index no permite un valor Null. Para obtener más información, vea el tema "Requiere la propiedad" en la ayuda de DAO.

Sugere&ncianbsp;  Cuando se puede establecer esta propiedad para un objeto DAO de índice o un objeto field (figura de tabledef, registros o un objeto querydef), configurarlo para el objeto field. Se comprueba la validez de la configuración de la propiedad para un objeto de campo antes de un objeto index.

m_bForeign

Indica si un objeto index representa una clave externa de una tabla. Si esta propiedad es TRUE, el índice representa una clave externa de una tabla. Una clave externa se compone de uno o más campos en una tabla externa que identifican una fila de una tabla principal. El motor de base de datos de Microsoft Jet crea un objeto de índice para la tabla externa y establece la propiedad extranjera cuando se crea una relación que exige la integridad referencial. Para obtener más información, vea el tema "Propiedad extranjera" en la ayuda de DAO.

m_lDistinctCount

Indica el número de valores únicos para el objeto de índice que se incluyen en la tabla asociada. Comprobar la propiedad DistinctCount para determinar el número de valores únicos o claves, en un índice. Cualquier tecla se cuenta sólo una vez, aunque puede haber varias veces ese valor si el índice permite valores duplicados. Esta información es útil para las aplicaciones que intentan optimizar el acceso a datos mediante la evaluación de la información de índice. El número de valores únicos es también conocida como la cardinalidad de un objeto index. La propiedad DistinctCount no siempre reflejará el número real de claves en un momento determinado. Por ejemplo, un cambio causado por una reversión de la transacción no se reflejará inmediatamente en la propiedad DistinctCount. Para obtener más información, vea el tema "Propiedad de DistinctCount" en la ayuda de DAO.

Comentarios

Información recuperada por la función de miembro de la GetIndexInfo de un objeto tabledef se almacena en una estructura CDaoIndexInfo . Llame a la función miembro GetIndexInfo del objeto tabledef que contiene en cuya colección de índices se almacena el objeto index. CDaoIndexInfo también define una función miembro de volcar en versiones de depuración. Puede utilizar volcado para volcar el contenido de un objeto de CDaoIndexInfo.

Para obtener información sobre el uso de esta y otras estructuras de información de DAO de MFC, vea el artículo colecciones DAO: obtener información acerca de objetos DAO en la Guía del programador de Visual C++.

Vea tambié&nnbsp;CDaoTableDef::GetIndexInfo

Index