Einzelnen Beitrag anzeigen

globetrotter77

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

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 29. Jan 2009, 21:20
@omata:

sehr gut, dann weißt du ja, was richtige Datenmengen sind.

also:
ich habe eine SQLConnection für die Firebird-DB und ein SQLDataSet für eine der Tabellen aus der DB.
Dann einen DataSetProvider, der mit dem TSQLDataSet verbunden ist, und ein ClientDataSet, das auf den DataSetProvider zugreift.

Die DB habe ich mit ISQL erstellt (inkl. Index-Definitionen), die Daten wurden mit einem anderen Programm aus einer anderen Datenbank importiert.

Und jetzt will ich gerne mit meinem Programm einigermaßen elegant mit den Daten umgehen.
Das heißt aber auch, dass ich ab und zu die Daten in einer anderen Sortierung haben will.
Hierzu klicke ich in einem DBGrid einfach auf die Titelleiste und stelle den Index im OnTitleClick-Event um.

Das geht auch einigermaßen flott, weil ich die verschiedenen Index-Definitionen per Hand zur Entwurfszeit eingetragen habe, aber eben immer erst ab der zweiten Verwendung.
Nach jedem Programmstart muss er die Indizes offenbar nochmal neu aufbauen, was natürlich Zeit kostet.
Standardmäßig scheint er nur den aktuell eingestellten Index aufzubauen, aber sobald ich einen anderen haben will, braucht er wieder so lange, bis es flutscht.
Ist ein Index erst einmal aufgebaut, geht es wirklich sehr schnell, keine Frage, aber wieso schmeißt Delphi alles wieder weg beim Programmende?
Und wieso sind die beim CREATE-DATABASE-Durchlauf nicht schon vorhanden und greifbar?

Das verstehe ich nicht, gebe ich zu!

Oder mache ich einfach irgendetwas völlig falsch?

IndexDefs.Update hilft da übrigens auch nicht weiter
  Mit Zitat antworten Zitat