La struttura CDaoIndexInfo ha la seguente forma:
struct {CDaoIndexInfo
nbsp; CDaoIndexInfo (); / / Costruttore
CString m_str&Name; / / Primaria
CDaoIndexFieldInfo * m_pFieldInfos; / / Primaria
m_nFields breve; / / Primaria
BOOL m_bPrimary; / / Secondarie
BOOL m_bUnique; / / Secondarie
BOOL m_bClustered; / / Secondarie
BOOL m_bIgnoreNulls; / / Secondarie
BOOL m_bRequired; / / Secondarie
BOOL m_bForeign; / / Secondarie
lunga m_lDistinctCount; / / All
/ / Qui di seguito il / / implementazione di commento:
/ / Distruttore, altrimenti non documentato
}
La struttura CDaoIndexInfo contiene informazioni su un oggetto indice definito per data access objects (DAO). I riferimenti alle primarie, secondarie e tutti sopra indicano come le informazioni vengono restituite dalla funzione membro GetIndexInfo nelle classi CDaoTableDef e CDaoRecordset.
Indice oggetti non sono rappresentati da una classe MFC. Invece, oggetti DAO MFC gli oggetti della classe CDaoTableDef o CDaoRecordset sottostanti contengono un insieme di oggetti indice, chiamato insieme Indexes. Queste classi forniscono funzioni membro per accedere ai singoli elementi di informazioni sull'indice, oppure si possono accedervi contemporaneamente con un oggetto CDaoIndexInfo chiamando la funzione membro GetIndexInfo dell'oggetto contenitore.
CDaoIndexInfo ha un costruttore e un distruttore di correttamente allocare e deallocare le informazioni dei campi indice in m_pFieldInfos.
Membri
m_strName
In modo univoco i nomi di oggetto field. Per informazioni dettagliate, vedere l'argomento "Nome proprietà" nell'aiuto di DAO.
m_pFieldInfos
Puntatore a una matrice di oggetti CDaoIndexFieldInfo che indica quali campi recordset o tabledef sono campi chiave in un indice. Ogni oggetto identifica un campo in the index. L'ordinamento predefinito index è ascendente. Un oggetto indice può avere uno o più campi che rappresentano le chiavi di indice per ogni record. Queste possono essere ascendente, discendente, o una combinazione.
m_nFields
Il numero di campi memorizzati in m_pFieldInfos.
m_bPrimary
Se la proprietà primaria è TRUE, l'oggetto indice rappresenta un indice primario. Un indice primario è costituito da uno o più campi che identificano in tutti i record in una tabella in un ordine predefinito. Poiché il campo indice deve essere unico, la proprietà dell'oggetto indice Unique anche è impostata su TRUE nel 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 univoco. Un indice primario consiste in una chiave per la tavola e contiene di solito gli stessi campi di chiave primaria.
Quando si imposta una chiave primaria per una tabella, la chiave primaria viene automaticamente definita come l'indice primario per la tabella. Per ulteriori informazioni, vedere gli argomenti "Proprietà primario" e "Proprietà uniche" nella guida di DAO.
&Notanbsp; Ci può essere, al massimo, un indice primario su un tavolo.
m_bUnique
Indica se un oggetto indice rappresenta un indice univoco per una tabella. Se questa proprietà è TRUE, l'oggetto indice rappresenta un indice univoco. Un indice univoco composto da uno o più campi che logicamente organizzare tutti i record in una tabella in un ordine unico, predefinito. Se l'indice è costituito da un unico campo, valori in questo 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 univoco.
Se l'unico e il primario di un oggetto indice sono impostate su TRUE, l'indice è unico e principale: esso identifica in modo univoco ogni record della tabella in un ordine logico, predefinito. Se la proprietà primaria è impostata su FALSE, l'indice è un indice secondario. Indici secondari (chiavi e non chiave) logicamente disporre i record in un ordine predefinito senza che servono come identificatore di record nella tabella.
Per ulteriori informazioni, vedere gli argomenti "Proprietà primario" e "Proprietà uniche" 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 non. Un indice cluster consiste di uno o più nonkey campi che, presi insieme, organizzare tutti i record in una tabella in un ordine predefinito. Con un indice cluster, i dati nella tabella sono letteralmente archiviati nell'ordine specificato dall'indice cluster. Un indice cluster fornisce un accesso efficiente al record di una tabella. Per ulteriori informazioni, vedere l'argomento "Proprietà cluster" nella guida di DAO.
&Notanbsp; La proprietà Clustered viene ignorata per i database che utilizzano il motore di database Microsoft Jet perché il motore di database Jet non supporta indici cluster.
m_bIgnoreNulls
Indica se ci sono voci di indice per i record che contengono valori Null nei loro campi di indice. Se questa proprietà è TRUE, campi con valori Null non hanno una voce di indice. Per rendere la ricerca di record utilizzando un campo più velocemente, è possibile definire un indice per il campo. Se si permettono di voci Null in un campo indicizzato e si aspettano molte delle voci su Null, è possibile impostare la proprietà IgnoreNulls per l'oggetto indice su TRUE per ridurre la quantità di spazio di archiviazione che utilizza l'indice. L'impostazione della proprietà IgnoreNulls e l'impostazione della proprietà richiesto insieme determinare se un record con un valore di indice Null ha una voce di indice, come mostrato nella seguente tabella.
| IgnoreNulls | Obbligatorio | Null nel campo indice |
| Vero | Falsi | Valore null consentito; nessuna voce di indice aggiunto. |
| Falsi | Falsi | Valore null consentito; aggiunta la voce di indice. |
| Vero o falso | Vero | Valore null non consentita; nessuna voce di indice aggiunto. |
Per ulteriori informazioni, vedere l'argomento "Proprietà IgnoreNulls" nell'aiuto di DAO.
m_bRequired
Indica se un oggetto indice 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à necessaria" nella guida di DAO.
Suggerime&ntonbsp; Quando è possibile impostare questa proprietà per un oggetto indice DAO o un campo oggetto (contenuta da un tabledef, recordset o di un oggetto querydef), impostare per l'oggetto field. La validità dell'impostazione della proprietà per un oggetto campo viene verificata prima di quella di un oggetto indice.
m_bForeign
Indica se un oggetto indice rappresenta una chiave esterna in una tabella. Se questa proprietà è TRUE, l'indice rappresenta una chiave esterna in una tabella. Una chiave esterna è costituito da uno o più campi di una tabella di straniero che identificano in modo univoco una riga in una tabella primaria. Il motore di database Microsoft Jet crea un oggetto indice per la tabella esterna e imposta la proprietà straniera quando si crea un rapporto che impone l'integrità referenziale. Per ulteriori informazioni, vedere l'argomento "Proprietà straniera" nella guida di DAO.
m_lDistinctCount
Indica il numero di valori univoci per l'oggetto indice che sono inclusi nella tabella associata. Controllare la proprietà DistinctCount per determinare il numero di valori univoci, o i tasti in un indice. Qualsiasi tasto viene conteggiato una sola volta, anche se ci possono essere più occorrenze di quel valore se l'indice consente valori duplicati. Queste informazioni sono utili nelle applicazioni che cercano di ottimizzare l'accesso ai dati mediante la valutazione di informazioni sull'indice. Il numero di valori univoci è conosciuto anche come la cardinalità di un oggetto indice. La proprietà DistinctCount non riflette sempre il numero effettivo di chiavi in un momento particolare. Ad esempio, un cambiamento causato da un rollback delle transazioni non sarà riportato immediatamente nella proprietà DistinctCount. Per ulteriori informazioni, vedere l'argomento "DistinctCount Property" nella guida di DAO.
Commenti
Informazioni recuperate dalla funzione membro GetIndexInfo di un oggetto tabledef viene memorizzati in una struttura CDaoIndexInfo . Chiamare la funzione membro GetIndexInfo dell'oggetto tabledef contenitore in cui insieme di indici l'oggetto indice viene archiviato. CDaoIndexInfo definisce anche una funzione membro Dump nelle build di debug. È possibile utilizzare Dump per eseguire il dump del contenuto di un oggetto CDaoIndexInfo.
Per informazioni sull'utilizzo di questa e altre strutture Info DAO MFC, vedere l'articolo insiemi DAO: recupero di informazioni sugli oggetti DAO nel manuale del programmatore di Visual C++.
Vedere a&nchenbsp;CDaoTableDef::GetIndexInfo