Bde.DBTables.TTable.AddIndex

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

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());

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
Bde.DBTables.pas
Bde.DBTables.hpp
Bde.DBTables TTable


Beschreibung

Erstellt einen neuen Index für die Tabelle.

Durch den Aufruf von AddIndex kann ein neuer Index für die mit einer Datenmenge verbundene, bereits vorhandene Tabelle erzeugt werden. Der mit dieser Prozedur erzeugte Index wird zu der Datenbanktabelle hinzugefügt, die der Datenmengenkomponente zugrunde liegt.

Name gibt den Namen des neuen Index an. Name muss einen für den verwendeten Datenbanktyp gültigen Indexnamen enthalten (die Benennungsregel sind bei verschiedenen Datenbanktypen unterschiedlich).

Fields enthält die Namen der Felder, auf denen der neue Index basiert. Wenn mehrere Felder angegebenen werden, müssen die Feldnamen in der Liste durch Semikolons voneinander getrennt werden.

Options ist eine Attributmenge für den Index. Der Parameter Options kann alle, einige oder keine der folgenden TIndexOptions-Konstanten enthalten:

  • ixPrimary
  • ixUnique
  • ixDescending
  • ixCaseInsensitive
  • ixExpression

Nicht alle Datenbanksysteme unterstützen alle diesen Optionen. Bei bestimmten Tabellentypen kann es sogar sein, dass einige Optionen nur in bestimmten Versionen dieses Tabellentyps unterstützt werden. Sehen Sie in der Dokumentation zu dem jeweiligen Datenbanksystem nach, welche Optionen unterstützt werden. Unter TIndexOptions finden Sie die Definitionen einzelner Konstanten und deren Implikationen.

DescFields ist ein String mit der Liste der durch Semikolon getrennten Feldnamen.

Die in DescFields angegebenen Felder stellen die Felder des neuen Indizes dar, die absteigend sortiert werden. Felder in der Indexdefinition, jedoch nicht in der DescFields-Liste, werden standardmäßig aufsteigend sortiert. Ein einzelner Index kann über Felder verfügen, die sowohl aufsteigend als auch absteigend sortiert sind.


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


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


Warnung:  Wird ein Index mit Optionen erstellt, die für den Tabellentyp nicht geeignet sind, löst AddIndex eine Exception aus.

dBASE-Tabellen unterstützen Primär- und wirklich eindeutige Indizes nur bei Tabellen der Ebene 7 oder höher (aus Visual dBASE 7). dBASE-Tabellen berücksichtigen die Unterscheidung zwischen Groß- und Kleinschreibung. Sie müssen die Konstante ixExpression verwenden, wenn der Index auf mehreren Feldern basiert oder die Funktionen der dBASE-Datenmanipulationssprache (DML) (für Indizes, die auf Ausdrücken basieren). dBASE-Indizes mit mehreren Feldern können nicht anhand einer Liste der Feldnamen im Parameter Fields von AddIndex erstellt werden. Die Konstante ixExpression kann nur für dBASE-Tabellen angewendet werden.

Paradox-Tabellen unterstützen die Option ixDescending für Sekundärindizes bei Tabellen der Ebene 7 oder höher und ixUnique bei Tabellen der Ebene 5 oder höher. Die Konstanten ixDescending und ixCaseInsensitive können nicht für Primärindizes verwendet werden.

Bei anderen Tabellentypen müssen Sie in der Dokumentation des entsprechenden Datenbanksysteme nachsehen, welche Indexoptionen zulässig sind.

Siehe auch