Bde.DBTables.TTable.AddIndex

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure AddIndex(const Name, Fields: string; Options: TIndexOptions;  const DescFields: string = '');

C++

void __fastcall AddIndex(const System::UnicodeString Name, const System::UnicodeString Fields, Data::Db::TIndexOptions Options, const System::UnicodeString DescFields = System::UnicodeString());

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
Bde.DBTables.pas
Bde.DBTables.hpp
Bde.DBTables TTable

Description

Crée un nouvel index pour la table.

Appelez AddIndex pour créer un nouvel index pour la table déjà existante associée à un composant ensemble de données. L'index ainsi créé est ajouté à la base de données de la table sous-jacente.

Name est le nom du nouvel index. Name doit contenir un nom d'index correct pour le type de base de données particulier utilisé (les règles d'attribution de nom varient d'un type de base de données à l'autre).

Fields contient les noms des champs sur lesquels est basé le nouvel index. Si plusieurs champs sont utilisés, séparez les noms de champs dans la liste par des points-virgules.

Options est un ensemble d'attributs de l'index. Le paramètre Options peut contenir une, plusieurs ou aucune constante TIndexOptions :

  • ixPrimary
  • ixUnique
  • ixDescending
  • ixCaseInsensitive
  • ixExpression

Tous les systèmes de base de données ne gèrent pas forcément toutes ces options. Même dans un type de table particulier, toute option donnée peut n'être supportée que dans certaines versions d'un type de table. Consultez la documentation du système de base de données particulier utilisé pour déterminer les options effectivement prises en charge. Voir la rubrique relative au type TIndexOptions pour des définitions de constantes et la portée de leur utilisation.

DescFields est une chaîne contenant une liste de noms de champs, séparés par des points-virgules.

Les champs spécifiés dans DescFields sont ceux figurant dans le nouvel index dont l'ordre sera décroissant. Les champs contenus dans la définition de l'index mais absents de la liste DescFields utilisent l'ordre croissant par défaut. Il est possible qu'un seul index possède des champs qui utilisent à la fois l'ordre croissant et décroissant.


Table1.AddIndex('MostPaid', 'CustNo;SaleDate;AmountPaid', [ixCaseInsensitive], 'SaleDate;AmountPaid');


TIndexOptions Options;
Options << ixCaseInsensitive;
Table1->AddIndex("MostPaid", "CustNo;SaleDate;AmountPaid", Options, "SaleDate;AmountPaid");


Avertissement : Si vous essayez de créer un index à l'aide d'options non applicables au type de table, AddIndex déclenche une exception.

Les tables dBASE ne supportent que les index primaires et les index uniques véritables lorsque le niveau de table est égal ou supérieur à 7 (concurrent de dBASE 7 Visuel). Les tables dBASE ne gèrent pas les index ne tenant pas compte des différences majuscule/minuscule. Vous devez utiliser la constante ixExpression lorsque l'index est basé sur plusieurs champs ou utilise des fonctions du langage de manipulation de données dBASE (c'est-à-dire, pour les index d'expression). Les index dBASE multi-champ ne peuvent pas être créés simplement avec une liste de noms de champs (séparés par des points-virgules) dans le paramètre Fields de AddIndex. La constante ixExpression n'est applicable qu'aux tables dBASE.

Les tables Paradox supportent l'option ixDescending pour les index secondaires si le niveau de table est supérieur ou égal à 7 et ixUnique si le niveau de table est égal ou supérieur à 5. Les constantes ixDescending et ixCaseInsensitive ne peuvent pas s'appliquer aux index primaires.

Pour les autres types de table, voir la documentation fournie par le revendeur du système de base de données particulier pour apprendre des détails sur les options d'index applicables.

Voir aussi