Einzelnen Beitrag anzeigen

globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#40

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 30. Jan 2009, 09:34
Zitat von Sherlock:
Ein Index funktioniert doch aber automatisch. Dafür ist er da. Du musst nach dem korrekten anlegen des Index nixhts mehr damit machen, die abfragen laufen dann ganz von alleine schneller.

http://de.wikipedia.org/wiki/Datenbankindex

Sherlock
Schön wär's!

Genau das hätte ich erwartet, aber es ist leider nicht so!
Das scheint aber ein Problem der ClientDataSet-Komponente zu sein.
Extern definierte Indizes sind einfach nicht greifbar, warum auch immer.

Einfach mal ausprobieren:
CREATE DATABASE xxx ...
CREATE TABLE yyy ...
CREATE INDEX zzz on yyy (spalte)
...

(geht mit jedem SQL-Tool auf die eine oder andere Art und Weise)

Danach neues Projekt erstellen, TSQLConnection, TSQLDataSet, TDataSetProvider, TClientDataSet anlegen und verfügbare Indizes über IndexDefs anzeigen.
Da findet sich aber nichts außer DEFAULT_ORDER und CHANGEINDEX, und die haben eine völlig andere Bedeutung.
Nun würde es mir ja nichts ausmachen, wenn ich das genau einmal aus meinem Programm herausmachen müsste, aber das ist eben auch nicht der Fall.
Stattdessen erzeugt die Komponente bei jedem Öffnen den aktuell eingestellten Index wieder neu.

Und das dauert einfach recht lange, wenn genügend Datensätze vorhanden sind ... ist ja klar!
Bei 1000 oder 10000 Sätzen fällt das zunächst mal gar nicht auf ...
  Mit Zitat antworten Zitat