Partilhar via


Estrutura CDaoIndexInfo

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

A CDaoIndexInfo estrutura contém informação sobre um objeto índice definido para objetos de acesso a dados (DAO).

Observação

DAO é suportado através do Office 2013. O DAO 3.6 é a versão final, e é considerado obsoleto.

Sintaxe

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
};

Parâmetros

m_strName
Nomeia de forma única o objeto de campo. Para mais detalhes, consulte o tópico "Nome de Propriedade" na Ajuda do DAO.

m_pFieldInfos
Um apontador para um array de objetos CDaoIndexFieldInfo que indica quais os campos tabledef ou de registos que são campos-chave num índice. Cada objeto identifica um campo no índice. A ordenação padrão dos índices é ascendente. Um objeto índice pode ter um ou mais campos que representem chaves de índice para cada registo. Estes podem ser ascendentes, descendentes ou uma combinação combinada.

m_nFields
O número de campos armazenados em m_pFieldInfos.

m_bPrimary
Se a propriedade Primária for VERDADEIRA, o objeto índice representa um índice primário. Um índice primário consiste em um ou mais campos que identificam de forma única todos os registos numa tabela numa ordem pré-definida. Como o campo índice deve ser único, a propriedade Única do objeto Índice também é definida como TRUE no DAO. Se o índice primário consistir em mais do que um campo, cada campo pode conter valores duplicados, mas cada combinação de valores de todos os campos indexados deve ser única. Um índice primário consiste numa chave para a tabela e normalmente contém os mesmos campos da chave primária.

Quando defines uma chave primária para uma tabela, a chave primária é automaticamente definida como o índice primário da tabela. Para mais informações, consulte os tópicos "Propriedade Primária" e "Propriedade Única" no DAO Help.

Observação

Pode haver, no máximo, um índice primário numa tabela.

m_bUnique
Indica se um objeto índice representa um índice único para uma tabela. Se esta propriedade for VERDADEIRA, o objeto índice representa um índice que é único. Um índice único consiste em um ou mais campos que organizam logicamente todos os registos numa tabela numa ordem única e predefinida. Se o índice consistir num campo, os valores nesse campo devem ser únicos para toda a tabela. Se o índice consistir em mais do que um campo, cada campo pode conter valores duplicados, mas cada combinação de valores de todos os campos indexados deve ser única.

Se ambas as propriedades Única e Primária de um objeto índice estiverem definidas como TRUE, o índice é único e primário: Identifica unicamente todos os registos na tabela numa ordem lógica pré-definida. Se a propriedade Primária estiver definida como FALSE, o índice é um índice secundário. Índices secundários (tanto chave como não-chave) organizam logicamente os registos numa ordem pré-definida sem servirem como identificador para registos na tabela.

Para mais informações, consulte os tópicos "Propriedade Primária" e "Propriedade Única" no DAO Help.

m_bClustered
Indica se um objeto índice representa um índice agrupado para uma tabela. Se esta propriedade for VERDADEIRA, o objeto índice representa um índice agrupado; caso contrário, não acontece. Um índice agrupado consiste em um ou mais campos não-chave que, em conjunto, organizam todos os registos numa tabela numa ordem pré-definida. Com um índice agrupado, os dados na tabela são literalmente armazenados na ordem especificada pelo índice agrupado. Um índice agrupado fornece acesso eficiente a registos numa tabela. Para mais informações, consulte o tópico "Propriedade Clusterizada" no DAO Help.

Observação

A propriedade Clustered é ignorada para bases de dados que utilizam o motor de base de dados Microsoft Jet porque o motor de base de dados Jet não suporta índices clusterizados.

m_bIgnoreNulls
Indica se existem entradas de índice para registos que tenham valores Nulos nos seus campos de índice. Se esta propriedade for VERDADEIRA, campos com valores nulos não têm uma entrada de índice. Para tornar a pesquisa de registos usando um campo mais rápida, pode definir um índice para esse campo. Se permitires entradas Null num campo indexado e esperares que muitas das entradas sejam Null, podes definir a propriedade IgnoreNulls para o objeto índice como TRUE para reduzir a quantidade de espaço de armazenamento que o índice utiliza. A definição de propriedade IgnoreNulls e a definição de propriedade Required determinam juntas se um registo com valor de índice Null tem uma entrada de índice, como mostra a tabela seguinte.

IgnoreNulls Obrigatório Nulo no campo índice
Verdade Falso Valor nulo permitido; Não foi adicionada nenhuma entrada no índice.
Falso Falso Valor nulo permitido; Entrada do índice adicionada.
Verdadeiro ou Falso Verdade Valor nulo não permitido; Não foi adicionada nenhuma entrada no índice.

Para mais informações, consulte o tópico "IgnoreNulls Property" na Ajuda DAO.

m_bRequired
Indica se um objeto índice DAO requer um valor não-Nulo. Se esta propriedade for VERDADEIRA, o objeto índice não permite um valor Nulo. Para mais informações, consulte o tópico "Propriedade Obrigatória" na Ajuda DAO.

Sugestão

Quando puder definir esta propriedade para um objeto índice DAO ou para um objeto campo (contido por um objeto tabledef, recordet ou querydef), defina-a para o objeto campo. A validade da definição de propriedade para um objeto campo é verificada antes da de um objeto índice.

m_bForeign
Indica se um objeto índice representa uma chave estrangeira numa tabela. Se esta propriedade for VERDADEIRA, o índice representa uma chave estrangeira numa tabela. Uma chave estrangeira consiste em um ou mais campos numa tabela estrangeira que identificam de forma única uma linha numa tabela primária. O motor de base de dados Microsoft Jet cria um objeto índice para a tabela estrangeira e define a propriedade Estrangeira quando se cria uma relação que impõe integridade referencial. Para mais informações, consulte o tópico "Propriedade Estrangeira" no DAO Help.

m_lDistinctCount
Indica o número de valores únicos para o objeto índice que estão incluídos na tabela associada. Verifique a propriedade DistinctCount para determinar o número de valores únicos, ou chaves, num índice. Qualquer chave é contada apenas uma vez, embora possa haver múltiplas ocorrências desse valor se o índice permitir valores duplicados. Esta informação é útil em aplicações que tentam otimizar o acesso aos dados através da avaliação da informação do índice. O número de valores únicos é também conhecido como cardinalidade de um objeto índice. A propriedade DistinctCount nem sempre refletirá o número real de chaves num determinado momento. Por exemplo, uma alteração causada por um rollback de transação não será imediatamente refletida na propriedade DistinctCount. Para mais informações, consulte o tópico "DistinctCount Property" na Ajuda DAO.

Observações

As referências a Primário, Secundário e Todos acima indicam como a informação é devolvida pela GetIndexInfo função membro nas classes CDaoTableDef e CDaoRecordset.

Os objetos índice não são representados por uma classe MFC. Em vez disso, os objetos DAO subjacentes aos objetos MFC da classe CDaoTableDef ou CDaoRecordset contêm uma coleção de objetos de índice, chamada coleção Indexes. Estas classes fornecem funções membros para aceder a itens individuais de informação de índice, ou pode aceder a todas de uma vez com um CDaoIndexInfo objeto chamando a GetIndexInfo função membro do objeto que contém.

CDaoIndexInfo tem um construtor e um destruidor para alocar e desalocar corretamente a informação do campo índice em m_pFieldInfos.

A informação recuperada pela GetIndexInfo função membro de um objeto tabledef é armazenada numa CDaoIndexInfo estrutura. Chame a GetIndexInfo função membro do objeto tabledef contendo cuja coleção Indexes está armazenada o objeto index. CDaoIndexInfo também define uma Dump função membro em builds de depuração. Podes usar Dump para despejar o conteúdo de um CDaoIndexInfo objeto.

Requerimentos

Cabeçalho:afxdao.h

Consulte também

Estruturas, estilos, retornos de chamada e mapas de mensagens
CDaoTableDef::GetIndexInfo