Eine dBASE-Indexdatei angeben

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu BDE-Datenmengen verwenden - Index

Hinweis: Die Borland Database Engine (BDE) ist veraltet und wird nicht mehr weiterentwickelt. Die BDE wird Unicode beispielsweise nie unterstützen. Sie sollten mit der BDE keine neuen Entwicklungen vornehmen. Überprüfen Sie, ob Sie Ihre vorhandenen Datenbankanwendungen nicht von der BDE nach dbExpress migrieren können.

Bei den meisten Servern geben Sie einen Index mithilfe der allgemein für Tabellen-Datenmengen geltenden Methoden an. Diese Methoden sind unter Datensätze anhand von Indizes sortieren beschrieben.

Bei dBASE-Tabellen, die nicht gewartete Indexdateien oder dBASE III PLUS-Indizes (*.NDX) verwenden, müssen Sie jedoch stattdessen die Eigenschaften IndexFiles und IndexName setzen. Geben Sie für die Eigenschaft IndexFiles den Namen der nicht gewarteten Indexdatei an, oder listen Sie die .NDX-Dateien auf. Geben Sie dann in der Eigenschaft IndexName denjenigen Index an, über den die Datenmenge sortiert werden soll.

Klicken Sie beim Entwurf im Objektinspektor auf die Ellipsen-Schaltfläche (...) neben der Eigenschaft IndexFiles, um den Indexdateien-Editor zu öffnen. Soll eine nicht gewartete Indexdatei oder eine .NDX-Datei hinzugefügt werden, so klicken Sie im Dialogfeld Indexdateien auf die Schaltfläche Hinzufügen und wählen die Datei im Dialogfeld Öffnen aus. Wiederholen Sie diesen Vorgang für alle nicht gewarteten Indexdateien oder .NDX-Dateien. Klicken Sie auf OK, wenn Sie alle gewünschten Indizes hinzugefügt haben.

Derselbe Vorgang kann auch zur Laufzeit vom Programm durchgeführt werden. Greifen Sie hierzu mithilfe der Eigenschaften und Methoden für String-Listen auf die Eigenschaft IndexFiles zu. Rufen Sie zum Hinzufügen einer neuen Gruppe von Indizes zunächst die Methode Clear für die Eigenschaft IndexFiles der Tabelle auf, um gegebenenfalls bereits vorhandene Einträge zu löschen. Fügen Sie dann über die Methode Add die gewünschten nicht gewarteten Indexdateien bzw. .NDX-Dateien hinzu:

with Table2.IndexFiles do begin
  Clear;
  Add('Bystate.ndx');
  Add('Byzip.ndx');
  Add('Fullname.ndx');
  Add('St_name.ndx');
end;
Table2->IndexFiles->Clear();
Table2->IndexFiles->Add("Bystate.ndx");
Table2->IndexFiles->Add("Byzip.ndx");
Table2->IndexFiles->Add("Fullname.ndx");
Table2->IndexFiles->Add("St_name.ndx");

Nachdem Sie die gewünschten Indexdateien hinzugefügt haben, stehen die Namen der einzelnen Indizes in der Indexdatei zur Verfügung und können der Eigenschaft IndexName zugewiesen werden. Die Index-Tags können auch über die Methode GetIndexNames oder beim Prüfen von Indexdefinitionen über die TIndexDef-Objekte der Eigenschaft IndexDefs aufgerufen werden. Ordnungsgemäß eingetragene .NDX-Dateien werden automatisch aktualisiert, wenn Daten in der Tabelle hinzugefügt, geändert oder gelöscht werden (dies ist unabhängig davon, ob ein bestimmter Index in der Eigenschaft IndexName verwendet wird).

Im folgenden Beispiel wird die Eigenschaft IndexFiles für die Tabellenkomponente AnimalsTable auf die nicht gewartete Indexdatei ANIMALS.MDX gesetzt, dann wird ihre Eigenschaft IndexName auf den Index-Tag NAME gesetzt:

AnimalsTable.IndexFiles.Add('ANIMALS.MDX');
AnimalsTable.IndexName := 'NAME';
AnimalsTable->IndexFiles->Add("ANIMALS.MDX");
AnimalsTable->IndexName = "NAME";

Nachdem Sie die zu verwendende Indexdatei angegeben haben, gibt es bei Verwendung von nicht gewarteten Indexdateien oder .NDX-Indizes keine Unterschiede zu anderen Indizes. Wenn Sie einen Indexnamen angeben, werden die Daten in der Tabelle entsprechend sortiert und stehen für indexgestützte Suchvorgänge, zur Angabe von Bereichen und (bei nicht gewarteten Indizes) für Haupt/Detail-Verknüpfungen zur Verfügung. Einzelheiten zur Verwendung dieser Indizes finden Sie unter Tabellen-Datenmengen.

Bei der Verwendung von dBASE III PLUS-Indizes (.NDX-Indizes) zusammen mit TTable-Komponenten sind zwei besondere Aspekte zu beachten: Einerseits können .NDX-Dateien nicht als Basis für Haupt/Detail-Beziehungen verwendet werden; Andererseits müssen Sie beim Aktivieren eines .NDX-Index über die Eigenschaft IndexName die Erweiterung .NDX als Teil des Indexnamens in den Eigenschaftenwert eintragen:

with Table1 do begin
  IndexName := 'ByState.NDX';
  FindKey(['CA']);
end;
Table1->IndexName = "ByState.NDX";
TVarRec vr = ("NE");
Table1->FindKey(&vr, 0);

Siehe auch