Struttura CDaoIndexInfo

La struttura di CDaoIndexInfo contiene informazioni su un oggetto indice definito per DAO (data access (DAO) objects).

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

Parametri

  • m_strName
    In modo univoco denominazione l'oggetto di campo.Per ulteriori informazioni, vedere l'argomento “proprietà name„ nella Guida di DAO.

  • m_pFieldInfos
    Un puntatore a una matrice di CDaoIndexFieldInfo oggetti OLE/COM quali TableDef o campi del recordset sono campi chiave in un indice.Ogni oggetto identifica un campo dell'indice.L'ordine predefinito di indice è crescente.Un oggetto indice può contenere uno o più campi che rappresentano le chiavi di indice per ogni record.Queste possono essere crescente, discendere, o una combinazione.

  • m_nFields
    Il numero di campi archiviati in m_pFieldInfos.

  • m_bPrimary
    Se la proprietà principale è TRUE, l'oggetto indice rappresenta un indice primario.Un indice primario è costituito da uno o più campi che identificano in modo univoco tutti i record di una tabella in un ordine predefinito.Poiché il campo dell'indice deve essere univoco, la proprietà univoca di indice viene impostata su TRUE in DAO.Se l'indice primario è costituito da più di un campo, ogni campo può contenere valori duplicati, ma ogni combinazione di valori da tutti i campi indicizzati deve essere univoca.Un indice primario è costituito da una chiave per la tabella e in genere contiene gli stessi campi di chiave primaria.

    Quando si imposta una chiave primaria per una tabella, la chiave primaria viene automaticamente definito come indice primario per la tabella.Per ulteriori informazioni, vedere gli argomenti “proprietà primaria„ e “proprietà univoca„ nella Guida di DAO.

    [!NOTA]

    Potrebbe esserci, al massimo, un indice primario in una tabella.

  • m_bUnique
    Indica se un oggetto indice rappresenta un indice univoco per una tabella.Se questa proprietà è TRUE, l'oggetto indice rappresenta un indice che è univoco.Un indice univoco è costituito da uno o più campi che dispongono solitamente tutti i record di una tabella in un ordine univoco e predefinito.Se l'indice è costituito da un campo, i valori in quel campo devono essere univoci per l'intera tabella.Se l'indice è costituito da più di un campo, ogni campo può contenere valori duplicati, ma ogni combinazione di valori da tutti i campi indicizzati deve essere univoca.

    Se sia le proprietà specifiche che primarie di un oggetto indice sono impostate su TRUE, indice univoco e principale: Identifica in modo univoco tutti i record della tabella in un ordine predefinito e logico.Se la proprietà primaria è impostata su FALSE, l'indice è un indice secondario.Gli indici secondari (entrambi impostate e non chiave) dispongono logicamente i record in un ordine predefinito senza funge da riferimento ai record della tabella.

    Per ulteriori informazioni, vedere gli argomenti “proprietà primaria„ e “proprietà univoca„ nella Guida di DAO.

  • m_bClustered
    Indica se un oggetto indice rappresenta un indice cluster per una tabella.Se questa proprietà è TRUE, l'oggetto indice rappresenta un indice cluster, in caso contrario, non è possibile.Un indice cluster è costituito da uno o più campi non chiave che, insieme, dispongono di tutti i record di una tabella in un ordine predefinito.Con un indice cluster, i dati della tabella vengono archiviati letteralmente nell'ordine specificato tramite l'indice cluster.Un indice cluster fornisce l'accesso efficace i record di una tabella.Per ulteriori informazioni, vedere l'argomento “proprietà cluster„ nella Guida di DAO.

    [!NOTA]

    La proprietà cluster viene ignorata per i database che utilizzano il modulo di gestione di database Microsoft Jet poiché il motore di database Jet non supporta gli indici cluster.

  • m_bIgnoreNulls
    Indica se sono presenti voci di indice per i record che contengono valori null nei campi di indice.Se questa proprietà è TRUE, i campi con i valori null non dispongono di una voce di indice.Per effettuare la ricerca record mediante un campo più velocemente, è possibile definire un indice per il campo.Se si abilita le voci null in un campo indicizzato e richiedere molte delle voci per essere null, è possibile impostare la proprietà di IgnoreNulls per l'oggetto indice a TRUE per ridurre la quantità di spazio di archiviazione che l'indice utilizza.L'impostazione delle proprietà di IgnoreNulls e l'impostazione delle proprietà di associazione determinano se un record con un valore di indice null dispone di una voce di indice, come illustrato nella tabella.

    IgnoreNulls

    Obbligatorio

    Null nel campo dell'indice

    True

    False

    Valore null consentito; alcuna voce di indice aggiunta.

    False

    False

    Valore null consentito; voce di indice aggiunta.

    True o False

    True

    Valore null non consentito; alcuna voce di indice aggiunta.

    Per ulteriori informazioni, vedere l'argomento “proprietà di IgnoreNulls„ nella Guida di DAO.

  • m_bRequired
    Indica se un oggetto indice di DAO richiede un valore non Null.Se questa proprietà è TRUE, l'oggetto indice non consente un valore null.Per ulteriori informazioni, vedere l'argomento “proprietà richiesta„ nella Guida di DAO.

    SuggerimentoSuggerimento

    Quando è possibile impostare questa proprietà per un oggetto indice di DAO o un oggetto di campo (contenuto da un TableDef, da un recordset, o da un oggetto di querydef), impostarlo per l'oggetto di campo.La validità di impostazione delle proprietà per un oggetto di campo viene controllata prima di un oggetto indice.

  • m_bForeign
    Indica se un oggetto indice rappresenta una chiave esterna di una tabella.Se questa proprietà è TRUE, l'indice rappresenta una chiave esterna di una tabella.Una chiave esterna è costituito da uno o più campi in una tabella esterna che identificano in modo univoco una riga in una tabella primaria.Il modulo di gestione di database Microsoft Jet crea un oggetto indice per la tabella esterna e la proprietà chiave esterna quando si crea una relazione che applica l'integrità referenziale.Per ulteriori informazioni, vedere l'argomento “proprietà chiave esterna„ nella Guida di DAO.

  • m_lDistinctCount
    Indica il numero di valori univoci per l'oggetto indice inclusi nella tabella associata.Controllare la proprietà di DistinctCount per determinare il numero di valori univoci, o delle chiavi, in un indice.Qualsiasi chiave viene calcolata una sola volta, anche se possono essere presenti più occorrenze di tale valore se le autorizzazioni dell'indice comportano i valori.Queste informazioni sono utili nelle applicazioni che tenta di ottimizzare l'accesso ai dati valutando le informazioni dell'indice.Il numero di valori univoci è anche nota come la cardinalità di un oggetto indice.La proprietà di DistinctCount non rifletterà sempre il numero effettivo di chiavi in un determinato momento.Ad esempio, una modifica causata da un rollback della transazione non verrà riportata immediatamente nella proprietà di DistinctCount.Per ulteriori informazioni, vedere l'argomento “proprietà di DistinctCount„ nella Guida di DAO.

Note

I riferimenti a primario, a secondario e tutti su indicano come le informazioni restituite dalla funzione membro di GetIndexInfo nelle classi CDaoTableDef e CDaoRecordset.

Gli oggetti indice non sono rappresentati da una classe MFC.Viceversa, gli oggetti di DAO che sono alla base degli oggetti MFC di classe CDaoTableDef o CDaoRecordset contengono una raccolta di oggetti indice, chiamare la raccolta degli indici.Queste classi forniscono le funzioni membro per accedere ai singoli elementi di informazioni di indice, o è possibile accedervi contemporaneamente a un oggetto di CDaoIndexInfo chiamando la funzione membro di GetIndexInfo dell'oggetto contenitore.

CDaoIndexInfo dispone di un costruttore e un distruttore per il corretto allocare e liberare le informazioni del campo dell'indice in m_pFieldInfos.

Le informazioni recuperate dalla funzione membro di GetIndexInfo di un oggetto di TableDef vengono archiviate in una struttura di CDaoIndexInfo .Chiamare la funzione membro di GetIndexInfo dell'oggetto contenitore di TableDef cui la raccolta di indici l'oggetto indice è archiviato.CDaoIndexInfo definisce anche una funzione membro di Dump nelle build di debug.È possibile utilizzare Dump per eseguire il dump del contenuto di un oggetto di CDaoIndexInfo .

Requisiti

Header: afxdao.h

Vedere anche

Riferimenti

CDaoTableDef::GetIndexInfo

Altre risorse

Strutture, stili, callback e di mappe messaggi