Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Crée un fichier d’index pour afficher et accéder aux enregistrements de table dans un ordre logique.
Syntaxe
INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName]
[FOR lExpression]
[COMPACT]
[ASCENDING | DESCENDING]
[UNIQUE | CANDIDATE]
[ADDITIVE]
Les arguments
eExpression
Spécifie une expression d’index qui peut inclure le nom d’un champ ou de champs de la table active. Une clé d’index basée sur l’expression d’index est créée dans le fichier d’index pour chaque enregistrement de la table. Visual FoxPro utilise ces clés pour afficher et accéder aux enregistrements dans la table.
Remarque
Bien qu’il ne soit pas recommandé, eExpression peut également être une variable de mémoire, un élément de tableau ou une expression de champ ou de champ d’une table dans une autre zone de travail. Les champs mémo ne peuvent pas être utilisés seuls dans les expressions de fichier d’index ; ils doivent être combinés à d’autres expressions de caractères. Si vous accédez à un index qui contient une variable ou un champ qui n’existe plus ou ne peut plus être localisé, Visual FoxPro génère un message d’erreur.
Si vous tentez de créer un index avec une clé qui varie en longueur, la clé est rembourrée avec des espaces. Les clés d’index de longueur variable ne sont pas prises en charge dans Visual FoxPro.
Il est possible de créer une clé d’index avec une longueur nulle. Par exemple, une clé d’index de longueur nulle est créée lorsque l’expression d’index est une sous-chaîne d’un champ mémo vide. Une clé d’index de longueur nulle génère un message d’erreur. Lorsque Visual FoxPro crée un index, il évalue les champs du premier enregistrement de la table. Si un champ est vide, il peut être nécessaire d’entrer des données temporaires dans le champ dans le premier enregistrement pour empêcher une clé d’index de longueur 0.
TO IDXFileName
Crée un fichier d’index .idx. Le fichier d’index reçoit l’extension .idx par défaut.
TAG TagName[OF CDXFileName]
Crée un fichier d’index composé. Un fichier d’index composé est un fichier d’index unique qui se compose de n’importe quel nombre de balises distinctes (entrées d’index). Chaque balise est identifiée par son nom d’étiquette unique. Les noms de balise doivent commencer par une lettre ou un trait de soulignement et peuvent se composer de n’importe quelle combinaison de 10 lettres, chiffres ou traits de soulignement. Le nombre d’étiquettes dans un fichier d’index composé est limité uniquement par la mémoire disponible et l’espace disque.
Les fichiers d’index composés à plusieurs entrées sont toujours compacts. Il n’est pas nécessaire d’inclure COMPACT lors de la création d’un fichier d’index composé. Les noms des fichiers d’index composés reçoivent une extension .cdx.
Deux types de fichiers d’index composés peuvent être créés : structurel et non structurel.
Fichiers d’index composés structurels Vous pouvez créer un fichier d’index composé structurel avec TAGName en excluant la clause FACULTATIF OF CDXFileName . Un fichier d’index composé structurel a toujours le même nom de base que la table et est automatiquement ouvert lorsque la table est ouverte.
Fichiers d’index composés non destructeurs Vous pouvez créer un fichier d’index composé nonstructural en incluant OF CDXFileName après TAG TagName. Contrairement à un fichier d’index composé structurel, un fichier d’index composé nonstructural doit être explicitement ouvert avec la clause INDEX dans USE.
Si un fichier d’index composé a déjà été créé et ouvert, l’émission d’INDEX avec TAGName ajoute une balise au fichier d’index composé.
FOR lExpression
Spécifie une condition dans laquelle seuls les enregistrements qui répondent à l’expression de filtre lExpression sont disponibles pour l’affichage et l’accès ; les clés d’index sont créées dans le fichier d’index pour seulement ces enregistrements correspondant à l’expression de filtre.
La technologie Visual FoxPro Rushmore optimise un INDEX ... Commande FOR lExpression si lExpression est une expression optimisable. Pour des performances optimales, utilisez une expression optimisable dans la clause FOR.
COMPACT
Crée un fichier .idx compact.
ASCENDANT
Spécifie un ordre croissant pour le fichier .cdx. Par défaut, les balises .cdx sont créées dans l’ordre croissant. (Vous pouvez inclure ASCENDING comme rappel de l’ordre du fichier d’index.) Une table peut être indexée dans l’ordre inverse en incluant DESCENDING.
DESCENDANT
Spécifie un ordre décroissant pour le fichier .cdx. Vous ne pouvez pas inclure DESCENDING lors de la création de fichiers d’index .idx.
UNIQUE
Spécifie que seul le premier enregistrement rencontré avec une valeur de clé d’index particulière est inclus dans un fichier .idx ou une balise .cdx. UNIQUE peut être utilisé pour empêcher l’affichage ou l’accès aux enregistrements en double. Tous les enregistrements ajoutés avec des clés d’index dupliquées sont exclus du fichier d’index. L’utilisation de l’option UNIQUE d’INDEX est identique à l’exécution de SET UNIQUE ON avant d’émettre INDEX ou REINDEX.
Lorsqu’un index unique ou une balise d’index est actif et qu’un enregistrement en double est modifié de manière à modifier sa clé d’index, l’index ou la balise d’index est mis à jour. Toutefois, l’enregistrement dupliqué suivant avec la clé d’index d’origine n’est pas accessible ou affiché tant que vous n’avez pas réindexé le fichier à l’aide de REINDEX.
CANDIDAT
Crée une balise d’index structurel candidate. Le mot clé CANDIDATE ne peut être inclus que lors de la création d’une balise d’index structurel ; sinon, Visual FoxPro génère un message d’erreur.
Une balise d’index candidate empêche les valeurs dupliquées dans le champ ou la combinaison de champs spécifiés dans l’expression d’index eExpression. Le terme candidat fait référence au type d’index ; étant donné que les index candidats empêchent les valeurs dupliquées, ils sont qualifiés de « candidat » pour être un index principal.
Visual FoxPro génère une erreur si vous créez une balise d’index candidate pour un champ ou une combinaison de champs qui contiennent déjà des valeurs en double.
ADDITIF
Conserve l’ouverture des fichiers d’index précédemment ouverts. Si vous omettez la clause ADDITIVE lorsque vous créez un fichier d’index ou des fichiers pour une table avec INDEX, tous les fichiers d’index précédemment ouverts (à l’exception de l’index composé structurel) sont fermés.
Remarques
Les enregistrements d’une table qui a un fichier d’index sont affichés et accessibles dans l’ordre spécifié par l’expression d’index. L’ordre physique des enregistrements de la table n’est pas modifié par un fichier d’index.
Types d’index
Visual FoxPro vous permet de créer deux types de fichiers d’index :
Fichiers d’index .cdx composés contenant plusieurs entrées d’index appelées balises
Fichiers d’index .idx contenant une entrée d’index
Vous pouvez également créer un fichier d’index composé structurel, qui est automatiquement ouvert avec la table.
Remarque
Étant donné que les fichiers d’index composés structurels sont automatiquement ouverts lorsque la table est ouverte, ils sont le type d’index préféré.
Incluez COMPACT pour créer des fichiers d’index .idx compacts. Les fichiers d’index composés sont toujours compacts.
Ordre d’index et mise à jour
Un seul fichier d’index (le fichier d’index maître) ou une balise (balise principale) contrôle l’ordre dans lequel la table est affichée ou accessible. Certaines commandes (SEEK, par exemple) utilisent le fichier d’index maître ou la balise pour rechercher des enregistrements. Toutefois, tous les fichiers d’index .idx et .cdx ouverts sont mis à jour à mesure que les modifications sont apportées à la table.
Fonctions définies par l'utilisateur
Bien qu’une expression d’index puisse contenir une fonction définie par l’utilisateur, vous ne devez pas utiliser de fonctions définies par l’utilisateur dans une expression d’index. Les fonctions définies par l’utilisateur dans une expression d’index augmentent le temps nécessaire pour créer ou mettre à jour l’index. En outre, les mises à jour d’index peuvent ne pas se produire lorsqu’une fonction définie par l’utilisateur est utilisée pour une expression d’index.
Si vous utilisez une fonction définie par l’utilisateur dans une expression d’index, Visual FoxPro doit être en mesure de localiser la fonction définie par l’utilisateur. Lorsque Visual FoxPro crée un index, l’expression d’index est enregistrée dans le fichier d’index, mais seule une référence à la fonction définie par l’utilisateur est incluse dans l’expression d’index.
Voir aussi
ALTER TABLE - Commande SQL
DELETE TAG, commande
SET COLLATE, commande
SET UNIQUE, commande