Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Crea un file di indice per visualizzare e accedere ai record di tabella in un ordine logico.
Sintassi
INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName]
[FOR lExpression]
[COMPACT]
[ASCENDING | DESCENDING]
[UNIQUE | CANDIDATE]
[ADDITIVE]
Argomenti
eExpression
Specifica un'espressione di indice che può includere il nome di un campo o di un campo dalla tabella corrente. Una chiave di indice basata sull'espressione di indice viene creata nel file di indice per ogni record della tabella. Visual FoxPro usa queste chiavi per visualizzare e accedere ai record nella tabella.
Annotazioni
Sebbene non sia consigliato, eExpression può anche essere una variabile di memoria, un elemento di matrice o un'espressione di campo o campo da una tabella in un'altra area di lavoro. I campi memo non possono essere usati da soli nelle espressioni di file di indice; devono essere combinati con altre espressioni di caratteri. Se si accede a un indice contenente una variabile o un campo che non esiste più o non è possibile trovare, Visual FoxPro genera un messaggio di errore.
Se si tenta di compilare un indice con una chiave che varia in lunghezza, la chiave verrà riempita con spazi. Le chiavi di indice a lunghezza variabile non sono supportate in Visual FoxPro.
È possibile creare una chiave di indice con lunghezza zero. Ad esempio, viene creata una chiave di indice di lunghezza zero quando l'espressione di indice è una sottostringa di un campo memo vuoto. Una chiave di indice di lunghezza zero genera un messaggio di errore. Quando Visual FoxPro crea un indice, valuta i campi nel primo record della tabella. Se un campo è vuoto, potrebbe essere necessario immettere alcuni dati temporanei nel campo nel primo record per impedire una chiave di indice di lunghezza 0.
TO IDXFileName
Crea un file di indice con estensione idx. Al file di indice viene assegnata l'estensione predefinita con estensione idx.
TAG TagName[OF CDXFileName]
Crea un file di indice composto. Un file di indice composto è un singolo file di indice costituito da un numero qualsiasi di tag separati (voci di indice). Ogni tag viene identificato dal nome univoco del tag. I nomi dei tag devono iniziare con una lettera o un carattere di sottolineatura e possono essere costituiti da qualsiasi combinazione di fino a 10 lettere, cifre o caratteri di sottolineatura. Il numero di tag in un file di indice composto è limitato solo dalla memoria disponibile e dallo spazio su disco.
I file di indice composti a più voci sono sempre compattati. Non è necessario includere COMPACT durante la creazione di un file di indice composto. Ai nomi dei file di indice composti viene assegnata un'estensione cdx.
È possibile creare due tipi di file di indice composti: strutturali e non strutturali.
File di indice composti strutturali È possibile creare un file di indice composto strutturale con TAG TagName escludendo la clausola FACOLTATIVA OF CDXFileName . Un file di indice composto strutturale ha sempre lo stesso nome di base della tabella e viene aperto automaticamente all'apertura della tabella.
File di indice composti non strutturali È possibile creare un file di indice composto non structale includendo OF CDXFileName dopo TAG TagName. A differenza di un file di indice composto strutturale, un file di indice composto non strutturale deve essere aperto in modo esplicito con la clausola INDEX in USE.
Se è già stato creato e aperto un file di indice composto, l'emissione di INDEX con TAG TagName aggiunge un tag al file di indice composto.
FOR lExpression
Specifica una condizione in cui solo i record che soddisfano l'espressione di filtro lExpression sono disponibili per la visualizzazione e l'accesso; le chiavi di indice vengono create nel file di indice solo per i record corrispondenti all'espressione di filtro.
La tecnologia Visual FoxPro Rushmore ottimizza un indice ... Comando FOR lExpression se lExpression è un'espressione ottimizzabile. Per ottenere prestazioni ottimali, usare un'espressione ottimizzabile nella clausola FOR.
COMPATTO
Crea un file con estensione idx compatto.
ASCENDENTE
Specifica un ordine crescente per il file con estensione cdx. Per impostazione predefinita, i tag con estensione cdx vengono creati in ordine crescente. È possibile includere ASCENDING come promemoria dell'ordine del file di indice. Una tabella può essere indicizzata in ordine inverso includendo DESCENDING.
DISCENDENTE
Specifica un ordine decrescente per il file con estensione cdx. Non è possibile includere DESCENDING durante la creazione di file di indice con estensione idx.
UNICO
Specifica che solo il primo record rilevato con un determinato valore della chiave di indice è incluso in un file con estensione idx o in un tag cdx. UNIQUE può essere usato per impedire la visualizzazione o l'accesso a record duplicati. Tutti i record aggiunti con chiavi di indice duplicate vengono esclusi dal file di indice. L'uso dell'opzione UNIQUE di INDEX è identico all'esecuzione di SET UNIQUE ON prima di emettere INDEX o REINDEX.
Quando un indice UNIQUE o un tag di indice è attivo e un record duplicato viene modificato in modo da modificare la chiave di indice, l'indice o il tag di indice viene aggiornato. Tuttavia, il record duplicato successivo con la chiave di indice originale non può essere accessibile o visualizzato fino a quando non si reindicizzare il file usando REINDEX.
CANDIDATO
Crea un tag di indice strutturale candidato. La parola chiave CANDIDATE può essere inclusa solo quando si crea un tag di indice strutturale; in caso contrario, Visual FoxPro genera un messaggio di errore.
Un tag di indice candidato impedisce valori duplicati nel campo o combinazione di campi specificati nell'espressione di indice eExpression. Il termine candidato fa riferimento al tipo di indice; poiché gli indici candidati impediscono valori duplicati, sono qualificati come "candidati" come indice primario.
Visual FoxPro genera un errore se si crea un tag di indice candidato per un campo o una combinazione di campi che contengono già valori duplicati.
ADDITIVO
Mantiene aperti tutti i file di indice aperti in precedenza. Se si omette la clausola ADDITIVE quando si crea un file di indice o file per una tabella con INDEX, tutti i file di indice aperti in precedenza (ad eccezione dell'indice composto strutturale) vengono chiusi.
Osservazioni:
I record in una tabella con un file di indice vengono visualizzati e accessibili nell'ordine specificato dall'espressione di indice. L'ordine fisico dei record nella tabella non viene modificato da un file di indice.
Tipi di indice
Visual FoxPro consente di creare due tipi di file di indice:
File di indice cdx composti contenenti più voci di indice denominate tag
File di indice con estensione idx contenenti una voce di indice
È anche possibile creare un file di indice composto strutturale, che viene aperto automaticamente con la tabella.
Annotazioni
Poiché i file di indice composti strutturali vengono aperti automaticamente all'apertura della tabella, sono il tipo di indice preferito.
Includere COMPACT per creare file di indice con estensione idx compatta. I file di indice composti sono sempre compattati.
Ordine e aggiornamento dell'indice
Solo un file di indice (file di indice master) o un tag (il tag master) controlla l'ordine in cui viene visualizzata o accessibile la tabella. Alcuni comandi ,ad esempio SEEK, usano il file di indice master o il tag per cercare i record. Tuttavia, tutti i file di indice con estensione idx e cdx aperti vengono aggiornati man mano che vengono apportate modifiche alla tabella.
Funzioni Definite dall'Utente
Sebbene un'espressione di indice possa contenere una funzione definita dall'utente, non è consigliabile usare funzioni definite dall'utente in un'espressione di indice. Le funzioni definite dall'utente in un'espressione di indice aumentano il tempo necessario per creare o aggiornare l'indice. Inoltre, gli aggiornamenti degli indici potrebbero non verificarsi quando viene usata una funzione definita dall'utente per un'espressione di indice.
Se si usa una funzione definita dall'utente in un'espressione di indice, Visual FoxPro deve essere in grado di individuare la funzione definita dall'utente. Quando Visual FoxPro crea un indice, l'espressione di indice viene salvata nel file di indice, ma nell'espressione di indice viene incluso solo un riferimento alla funzione definita dall'utente.
Vedere anche
ALTER TABLE (comando SQL)
Comando DELETE TAG
Comando SET COLLATE
Comando SET UNIQUE