A estrutura de CDaoIndexInfo has the seguinte formulário:
struct {CDaoIndexInfo
nbsp; CDaoIndexInfo (); / / Construtor
CString m_str&Name; / / Principal
CDaoIndexFieldInfo * m_pFieldInfos; / / Principal
m_nFields curto; / / Principal
BOOL m_bPrimary; / / Secundário
BOOL m_bUnique; / / Secundário
BOOL m_bClustered; / / Secundário
BOOL m_bIgnoreNulls; / / Secundário
BOOL m_bRequired; / / Secundário
BOOL m_bForeign; / / Secundário
m_lDistinctCount longo; / / Tudo
/ / Abaixo o / / comentário de implementação:
/ / Destrutor, não caso contrário documentado
}
A estrutura de CDaoIndexInfo contém informações sobre um objeto de índice definido para dados acessar objetos (DAO). As referências para primária, secundária e tudo acima indicam como as informações são retornadas pela função de membro GetIndexInfo em classes CDaoTableDef e CDaoRecordset.
Objetos índice não são representados por uma classe do MFC. Em vez disso, objetos DAO subjacentes objetos MFC classe CDaoTableDef ou CDaoRecordset contêm uma coleção de objetos de índice, chamado a coleção Indexes. Essas classes fornecem funções de membro para acessar itens individuais de informações de índice, ou você pode acessá-los todos de uma vez com um objeto CDaoIndexInfo chamando a função de membro GetIndexInfo do objeto recipiente.
CDaoIndexInfo tem um construtor e um destruidor para corretamente alocar e desalocar as informações de campo de índice no m_pFieldInfos.
Membros
m_strName
Nomes exclusivamente o objeto de campo. Para obter detalhes, consulte o tópico "Propriedade de nome" na Ajuda do DAO.
m_pFieldInfos
Um ponteiro para uma matriz de CDaoIndexFieldInfo objetos indicando quais campos definiçãodetabela ou conjunto de registros são campos de chave em um índice. Cada objeto identifica um campo no índice. A ordem de índice padrão é crescente. Um objeto de índice pode ter um ou mais campos que representam chaves de índice para cada registro. Estes podem ser crescente, decrescente, ou uma combinação.
m_nFields
O número de campos armazenados em m_pFieldInfos.
m_bPrimary
Se a propriedade Primary for TRUE, o objeto de índice representa um índice primário. Um índice primário consiste em um ou mais campos que identificam todos os registros em uma tabela em uma ordem predefinida. Como o campo de índice deve ser exclusivo, a única propriedade do objeto Index é também definida como verdadeiro no DAO. Se o índice primário consiste em mais de um campo, cada campo poderá conter valores Duplicars, mas cada combinação de valores de Tudo campos indexados deve ser exclusiva. Um índice primário consiste em uma chave para a tabela e geralmente contém os mesmos campos da chave primária.
Quando você definir uma chave primária para uma tabela, a chave primária é definida automaticamente como o índice primário para a tabela. Para obter mais informações, consulte os tópicos "Propriedade primário" e "Exclusivo propriedade" na Ajuda do DAO.
&Notanbsp; Pode haver, no máximo, um índice principal em uma tabela.
m_bUnique
Indica se um objeto de índice representa um índice exclusivo de uma tabela. Se essa propriedade for TRUE, o objeto de índice representa um índice exclusivo. Um índice exclusivo consiste em um ou mais campos que logicamente organizar todos os registros em uma tabela em uma ordem predefinida, exclusiva. Se o índice consistir em um campo, os valores nesse campo devem ser exclusivos para a tabela inteira. Se o índice consistir em mais de um campo, cada campo poderá conter valores Duplicars, mas cada combinação de valores de Tudo campos indexados deve ser exclusiva.
Se a Unique e Primary propriedades de um objeto de índice são definidas como TRUE, o índice é exclusivo e primário: ele identifica todos os registros da tabela em uma ordem predefinida, lógica. Se a propriedade Primary é definida como FALSE, o índice é um índice secundário. Índices secundários (chaves e não-chave) organizar logicamente os registros em uma ordem predefinida sem servir como um identificador para registros na tabela.
Para obter mais informações, consulte os tópicos "Propriedade primário" e "Exclusivo propriedade" na Ajuda do DAO.
m_bClustered
Indica se um objeto de índice representa um índice clusterizado em uma tabela. Se essa propriedade for TRUE, o objeto de índice representa um índice de cluster; caso contrário, ele não. Um índice agrupado consiste em um ou mais nonkey campos que, juntos, organizar todos os registros em uma tabela em uma ordem predefinida. Com um índice clusterizado, os dados na tabela literalmente são armazenados na ordem especificada pelo índice clusterizado. Um índice de cluster fornece acesso eficiente aos registros em uma tabela. Para obter mais informações, consulte o tópico "Propriedade em cluster" na Ajuda do DAO.
&Notanbsp; A propriedade Clustered é ignorada para bancos de dados que usam o mecanismo de banco de dados Microsoft Jet porque o mecanismo de banco de dados Jet não oferece suporte índices clusterizados.
m_bIgnoreNulls
Indica se há entradas de índice para registros que possuem valores Null em seus campos de índice. Se essa propriedade for TRUE, os campos com valores nulos não têm uma entrada de índice. Para fazer procurando registros usando um campo mais rápido, você pode definir um índice para o campo. Se você permite entradas Null em um campo indexado e espera que muitas das entradas para ser Null, você pode definir a propriedade IgnoreNulls para o objeto de índice para verdadeiro para reduzir a quantidade de espaço de armazenamento que usa o índice. A configuração da propriedade IgnoreNulls e a configuração da propriedade Required juntas determinam se um registro com um valor de índice Null possui uma entrada de índice, como mostra a tabela a seguir.
| IgnoreNulls | Necessário | Nulo em campo de índice |
| Verdadeiro | Falso | Valor nulo permitido; nenhuma entrada de índice adicionada. |
| Falso | Falso | Valor nulo permitido; entrada de índice adicionada. |
| Verdadeiro ou falso | Verdadeiro | Valor nulo não permitido; nenhuma entrada de índice adicionada. |
Para obter mais informações, consulte o tópico "Propriedade IgnoreNulls" na Ajuda do DAO.
m_bRequired
Indica se um objeto de índice do DAO requer um valor não-nulo.Se essa propriedade for TRUE, o objeto de índice não permite que um valor nulo. Para obter mais informações, consulte o tópico "Propriedade Required" na Ajuda do DAO.
Dica Quando você pode definir essa propriedade para um objeto de índice do DAO ou um objeto de campo (contido por um definiçãodetabela, conjunto de registros ou objeto definiçãodeconsulta), configurá-lo para o objeto de campo. A validade da configuração da propriedade para um objeto de campo é verificada antes que um objeto de índice.
m_bForeign
Indica se um objeto de índice representa uma chave estrangeira em uma tabela. Se essa propriedade for TRUE, o índice representa uma chave estrangeira em uma tabela. Uma chave externa consiste em um ou mais campos em uma tabela externa que identificam uma linha em uma tabela primária. O mecanismo de banco de dados Microsoft Jet cria um objeto de índice para a tabela externa e define a propriedade externa quando você cria um relacionamento que impõe a integridade referencial. Para obter mais informações, consulte o tópico "Propriedade estrangeira" na Ajuda do DAO.
m_lDistinctCount
Indica o número de valores exclusivos para o objeto de índice que são incluídos na tabela associada. Verifique a propriedade DistinctCount para determinar o número de valores exclusivos, ou chaves, em um índice. Qualquer tecla é contada apenas uma vez, mesmo que haja várias ocorrências desse valor se o índice permite valores duplicados. Esta informação é útil em aplicativos que tentam otimizar o acesso aos dados com a avaliação de informações de índice. O número de valores exclusivos é também conhecido como a cardinalidade de um objeto de índice. A propriedade DistinctCount não sempre refletirá o número real de chaves em um determinado momento. Por exemplo, uma alteração causada por uma reversão de transação não ser refletida imediatamente na propriedade DistinctCount. Para obter mais informações, consulte o tópico "Propriedade DistinctCount" na Ajuda do DAO.
Comentários
Informações recuperadas pelo função de membro GetIndexInfo de um objeto tabledef são armazenadas em uma estrutura de CDaoIndexInfo . Chame a função de membro GetIndexInfo do objeto definiçãodetabela contendo em cuja coleção índices o objeto de índice está armazenado. CDaoIndexInfo também define uma função de membro Dump em compilações de Depurar. Você pode usar Dump para despejar o conteúdo de um objeto CDaoIndexInfo.
Para obter informações sobre como usar esta e outras estruturas de informações da DAO MFC, consulte o artigo DAO coleções: obtenção de informações sobre objetos DAO no Guia do programador do Visual C++.
Co&nsulte tambémnbsp;CDaoTableDef::GetIndexInfo