Delphi-PRAXiS
Seite 2 von 10     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ClientDataSet - wie kann man Indizes verwenden? (https://www.delphipraxis.net/128397-clientdataset-wie-kann-man-indizes-verwenden.html)

globetrotter77 29. Jan 2009 20:17

Re: ClientDataSet - wie kann man Indizes verwenden?
 
@Thomas F:

tja, genau da liegt das Problem!
Interbase bzw. Firebird ist eigentlich sehr wohl für große Datenmengen geeignet, aber offenbar nicht in dieser Kombination.

Trotzdem danke für deine Hilfe!

mkinzler 29. Jan 2009 20:19

Re: ClientDataSet - wie kann man Indizes verwenden?
 
Das hat aber nichts mit dem DBMS zu tun, sondern mit der TClienDataSet-Komponente

omata 29. Jan 2009 20:19

Re: ClientDataSet - wie kann man Indizes verwenden?
 
Deine Tabellen haben aber auch Schlüssel?

globetrotter77 29. Jan 2009 20:31

Re: ClientDataSet - wie kann man Indizes verwenden?
 
@mkinzler:
das sehe ich auch so ... TClientDataSet stellt scheinbar einfach nichts dergleichen zur Verfügung, oder ich habe es noch nicht herausgefunden, wo es versteckt liegt.
Merkwürdig aber trotzdem der Hinweis mit den persistenten Indizes ... grummel

Gibt es evtl. eine andere dataset-artige Komponente, mit der man das bewerkstelligen kann?

Mein Problem ist einfach, dass ich weg will von der BDE, die nichts als Probleme bereitet und ja auch hoffnungslos veraltet ist.

Firebird als DB scheint mir durchaus geeignet zu sein, aber wenn die Vorteile der Datenbank nicht genutzt werden können, ist es ja fast schon egal, welche DB ich verwende.

globetrotter77 29. Jan 2009 20:33

Re: ClientDataSet - wie kann man Indizes verwenden?
 
@omata:

Mit Indizes meine ich eigentlich Schlüssel, klar habe ich die!
Besser gesagt: ich will sie haben, aber es geht nicht!

mkinzler 29. Jan 2009 20:36

Re: ClientDataSet - wie kann man Indizes verwenden?
 
Vielleicht eine andere Komponente

omata 29. Jan 2009 20:36

Re: ClientDataSet - wie kann man Indizes verwenden?
 
Das verstehe ich jetzt nicht. Schlüssel oder Indizes was denn nun?

Ich verwendet Firebird locker mit >1000000 pro Tabelle und das ist richtig schnell. Ich verstehe deine Probleme nicht, was machst du da?

mkinzler 29. Jan 2009 21:09

Re: ClientDataSet - wie kann man Indizes verwenden?
 
@omata: Er greuft ja nicht direkt, sondern über ein ClientDataSet zu

globetrotter77 29. Jan 2009 21:20

Re: ClientDataSet - wie kann man Indizes verwenden?
 
@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

globetrotter77 29. Jan 2009 21:21

Re: ClientDataSet - wie kann man Indizes verwenden?
 
@mkinzler:

wie kann ich denn direkt zugreifen??


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr.
Seite 2 von 10     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz