AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ClientDataSet - wie kann man Indizes verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

ClientDataSet - wie kann man Indizes verwenden?

Ein Thema von globetrotter77 · begonnen am 29. Jan 2009 · letzter Beitrag vom 4. Feb 2009
Antwort Antwort
Seite 7 von 10   « Erste     567 89     Letzte »    
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#61

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 20:36
Ja, das Thema ist nicht so einfach. Ich versuche mich mit dem Thema zu beschätigen und hatte deshalb die, wie ich fand, interresanten Links angegeben.

Hier ist auch noch einer.

Was zeigt denn dein Ablaufplan an, werden dort Indiezes verwendet?
  Mit Zitat antworten Zitat
globetrotter77

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

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 20:48
@Thomas F und mkinzler:
Sorry, das war vielleicht ein bisschen zu flapsig hingeschmissen!
Dachte, dass aus dem vorher Gesagten hervorgeht, dass der Open relativ flott geht und ich auch damit zufrieden bin (um die 10 Sekunde herum, je nach Rechner)
Nur bei diesem kurzen Ausflug mit ADO dauerte es plötzlich solange, daher der Krisenanfall ...
  Mit Zitat antworten Zitat
globetrotter77

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

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 20:51
Zitat von mkinzler:
Es braucht numnal eine Weilchen, die ganze Tabelle in den Hauptpsiecher zu laden. Deshalb sollte man das ja nicht machen
Soweit ich mittlerweile weiß, holt das ClientDataSet doch IMMER die gesamte Tabelle, ohne dass ich darauf Einfluss nehmen kann, oder?

PS: Der Open dauert mir im Normalfall ja auch gar nicht zu lange, sondern die Indizes sind nicht greifbar. Ich kann sie zwar bei jedem Programmstart neu aufbauen, aber dafür brauche ich natürlich schon die ganze Tabelle.
  Mit Zitat antworten Zitat
globetrotter77

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

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 21:00
Zitat von omata:
Was zeigt denn dein Ablaufplan an, werden dort Indiezes verwendet?
Irgendwie scheine ich mich falsch auszudrücken ... mit dem Ablaufplan hat das überhaupt nichts zu tun.
Es ist vorhersehbar, dass ich mit unterschiedlichen Sortierungen arbeiten muss.
Deshalb sind auch verschiedene Indizes in der Datenbank definiert.

Die Frage war ganz einfach:
Wie kann man diese Indizes verwenden?
Ich finde einfach keine Möglichkeit.

Langsam, aber sicher beschleicht mich der Verdacht, dass die eingesetzte IDE einfach nicht geeignet ist hierfür. War wohl eine Fehleinschätzung, dass ich dachte, das auch mit der Turbo-Explorer-Variante machen zu können.
Schade!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#65

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 21:07
Das liegt nicht an der IDE.

Das sieht in den einzelnen Versionen überall gleich aus.
Der Ausführungsplan zeigt dir aber an, ob Firebird einen Index verwendet, dafür waren die Links, die ich angegeben habe.

Naja, du wirst das schon hinbekommen.

Edit: Ich habe auch verschiedene Zugriffsmethoden ausprobiert (ZEOS, dbExpress), beides gleich. Deshalb nochmal die Frage, was zeigt die Statistik der Indiezes an. Sind die überhaupt aktuell berechnet. Ich weiss jetzt kommt wieder, ich kann das in Delphi nicht auswählen...
  Mit Zitat antworten Zitat
globetrotter77

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

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 21:52
Natürlich kommt das wieder!
Ich will direkte Möglichkeiten, zuzugreifen.
Abgesehen davon sehe ich auch sehr deutlich, was passiert, ohne irgendwelche Ausführungspläne zu analysieren.
Wüsste allerdings auch nicht sofort, wie ich an die Ausführungspläne komme, das gebe ich zu.
Aber damit könnte ich ja auch nur das aktuelle Problem ein bisschen besser einkreisen. Stattdessen denke ich eben lieber voraus und versuche, zu verstehen, wie ich grundsätzlich, also auch bei zukünftigen Projekten, vorgehen kann.

PS: Wenn ich sage, dass es an der IDE liegt, meine ich damit, dass es eben doch ein ziemlicher Nachteil ist, keine Fremdkomponenten einbinden zu können (oder nur sehr umständlich).
Grundsätzlich ist Turbo Delphi ein super Produkt, keine Frage!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#67

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 21:55
Was mir gerade noch einfällt...
Wie sollen die verschiedenen Sortierungen umgesetzt werden?
Steht eigentlich der CommandTyp auf ctQuery oder auf ctTable?
Wird beim Umschalten auf eine neue Sortierung eine neue Datenbankabfrage gestartet?
Wenn ja, wieso ist dann ein Index in der Anwendung interressant? Dann ist doch nur wichtig, dass die Datenbank den Index kennt und ihn benutzt.
  Mit Zitat antworten Zitat
globetrotter77

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

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 1. Feb 2009, 22:20
Um Himmels willen, nein!
Natürlich will ich nicht jedes Mal eine neue DB-Anfrage starten.
Deswegen steht der Commandtyp hierfür auch auf ctTable.
Im Augenblick behelfe ich mir, indem ich die in Frage kommenden Indizes beim Design von Hand eintrage und beim Programmlauf IndexName umstelle.
Geht aber, wie gesagt, immer erst bei der zweiten Benutzung des Index recht flott.
Wenn ich dann in die Detailbearbeitung gehe, brauche ich natürlich auch ctQuery.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#69

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 2. Feb 2009, 07:13
Hallo,

noch mal zum verständis.
Ein TClientDataSet hält eine Kopie der aktuellen Daten im Speicher.

Von welcher Datenbank die Daten kommen, ist ihm egal.
Man kann es auch per hand (lokal) füllen.

Ein Index ist eine interne Datenstruktur, je nach DB verschieden.

Aus diesem Grund kann das TClientDataSet keinen Firebird-Index benutzen.

Der Weg, Indizes im TClientDataSet zu erzeugen ist der richtige Weg.
Persistente Indizes machen aber keinen Sinn, die würden lokal angelegt.

Wenn du in ZEOS die Query benutzt, ohne TClientDataSet, sollte es funktionieren.
Ob das in der Turbo-Variante überhaupt geht, weiss ich allerdings nicht.


Heiko
Heiko
  Mit Zitat antworten Zitat
globetrotter77

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

Re: ClientDataSet - wie kann man Indizes verwenden?

  Alt 2. Feb 2009, 08:15
Zitat von hoika:
noch mal zum verständis.
Ein TClientDataSet hält eine Kopie der aktuellen Daten im Speicher.

Von welcher Datenbank die Daten kommen, ist ihm egal.
Man kann es auch per hand (lokal) füllen.
Soweit habe ich es bisher auch verstanden.

Zitat:
Ein Index ist eine interne Datenstruktur, je nach DB verschieden.

Aus diesem Grund kann das TClientDataSet keinen Firebird-Index benutzen.

Der Weg, Indizes im TClientDataSet zu erzeugen ist der richtige Weg.
Das verstehe ich nicht! Ich will doch nicht wissen, wie der Index DB-intern verwaltet wird, sondern nur die in der DB verwalteten Indizes nutzen. Wenn ich das nun programmintern wieder neu definieren muss, sind die Fehler doch schon vorprogrammiert.

Zitat:
Persistente Indizes machen aber keinen Sinn, die würden lokal angelegt.
Was meinst du in diesem Fall mit "lokal"? Ich brauche die ganze DB nur lokal.

Zitat:
Wenn du in ZEOS die Query benutzt, ohne TClientDataSet, sollte es funktionieren.
Ob das in der Turbo-Variante überhaupt geht, weiss ich allerdings nicht.
Dummerweise kann man in der Turbo-Variante eben keine Fremdkomponenten einbinden bzw. nur sehr umständlich. Und wenn das gerade bei den DB-Komponenten erforderlich ist, wird es schon sehr kompliziert. Ich will gar nicht wissen, wie lange ich gebraucht hätte für das, was ich bisher ausgetestet habe nur zu diesem Thema ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 10   « Erste     567 89     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 Uhr.
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