Partilhar via


Estrutura CDaoIndexInfo

O CDaoIndexInfo estrutura contém informações sobre um objeto de índice definido para objetos de acesso a dados (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
}; 

Parâmetros

  • 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 do recordset ou tabledef são campos de chave em um índice.Cada objeto identifica um campo no índice.A ordenação de índice padrão é crescente.Um objeto de índice pode ter um ou mais campos que representam chaves de índice para cada registro.Esses 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.Porque o campo de índice deve ser exclusivo, a propriedade exclusiva do objeto Index também é definida como TRUE no DAO.Se o índice primário consiste em mais de um campo, cada campo poderá conter valores duplicados, mas cada combinação de valores de todos os campos indexados deve ser exclusiva.Um índice primário consiste em uma chave para a tabela e geralmente contém os mesmos campos como chave primária.

    Quando você definir uma chave primária para uma tabela, a chave primária é automaticamente definida como índice para a tabela principal.Para obter mais informações, consulte os tópicos "Propriedade primário" e "Propriedade exclusiva" na Ajuda do DAO.

    ObservaçãoObservação

    Pode haver, no máximo, um índice primário 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 organizam logicamente 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 duplicados, mas cada combinação de valores de todos os campos indexados deve ser exclusiva.

    Se o exclusivo e o principal de um objeto de índice são definidas TRUE, o índice é exclusivo e primário: identifica todos os registros na tabela em uma ordem lógica predefinida.Se a propriedade Primary for definida como FALSE, o índice é um índice secundário.Índices secundários (chaves e não-chave) organizam 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 "Propriedade exclusiva" na Ajuda do DAO.

  • m_bClustered
    Indica se um objeto de índice representa um índice de cluster para uma tabela.Se essa propriedade for TRUE, o objeto de índice representa um índice de cluster; Caso contrário, ele não faz.Um índice agrupado consiste em um ou mais que não sejam chaves campos que, juntos, organizar todos os registros em uma tabela em uma ordem predefinida.Com um índice de cluster, os dados na tabela literalmente são armazenados na ordem especificada pelo índice em cluster.Um índice agrupado fornece acesso eficiente aos registros em uma tabela.Para obter mais informações, consulte o tópico "Propriedade de cluster" na Ajuda do DAO.

    ObservaçãoObservação

    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 a índices em cluster.

  • m_bIgnoreNulls
    Indica se há entradas de índice para registros com valores nulos em seus campos de índice.Se essa propriedade for TRUE, campos com valores nulos não têm uma entrada de índice.Para pesquisar registros usando um campo mais rapidamente, você pode definir um índice para o campo.Se você permite entradas Null em um campo indexado e espera que várias entradas para ser Null, você pode definir a propriedade IgnoreNulls para o objeto de índice para TRUE 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 no campo índice

    True

    False

    Valor nulo permitido; Nenhuma entrada de índice adicionada.

    False

    False

    Valor nulo permitido; entrada de índice adicionada.

    VERDADEIRO ou falso

    True

    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 necessária" na Ajuda do DAO.

    DicaDica

    Quando você pode definir essa propriedade para um objeto de índice do DAO ou um objeto de campo (contido por uma tabledef, recordset ou um objeto querydef), definido para o objeto de campo.A validade da configuração da propriedade para um objeto de campo é marcada antes que um objeto de índice.

  • m_bForeign
    Indica se um objeto de índice representa uma chave externa em uma tabela.Se essa propriedade for TRUE, o índice representa uma chave externa 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ê criar um relacionamento que impõe a integridade referencial.Para obter mais informações, consulte o tópico "Propriedade externo" na Ajuda do DAO.

  • m_lDistinctCount
    Indica o número de valores exclusivos para o objeto de índice que estão incluídos na tabela associada.Verifique a propriedade DistinctCount para determinar o número de valores exclusivos ou chaves em um índice.Qualquer chave é contado apenas uma vez, mesmo que haja várias ocorrências desse valor se o índice permite valores duplicados.Essa informação é útil em aplicativos que tentam otimizar o acesso a dados, avaliando as informações de índice.O número de valores exclusivos é também conhecida como 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

Referências primária, secundária e tudo acima indicam como as informações são retornadas pelo GetIndexInfo função de membro nas classes CDaoTableDef e CDaoRecordset.

Objetos de índice não são representados por uma classe do MFC.Em vez disso, os objetos DAO subjacentes objetos MFC classe CDaoTableDef ou CDaoRecordset contém uma coleção de objetos de índice, chamado 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 CDaoIndexInfo objeto chamando o GetIndexInfo função de membro do objeto recipiente.

CDaoIndexInfotem um construtor e um destruidor para alocar corretamente e desalocar as informações de campo de índice no m_pFieldInfos.

As informações recuperadas pelo GetIndexInfo função de membro de um objeto tabledef é armazenada em um CDaoIndexInfo estrutura.Chamar o GetIndexInfo função de membro do objeto tabledef contendo cuja coleção índices o objeto de índice está armazenado.CDaoIndexInfotambém define um Dump membro na depuração compilações.Você pode usar Dump para despejar o conteúdo de um CDaoIndexInfo objeto.

Requisitos

Cabeçalho: afxdao.h

Consulte também

Referência

CDaoTableDef::GetIndexInfo

Outros recursos

Estruturas, estilos, retornos de chamada e mapas de mensagem