Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi im Dataset suchen (https://www.delphipraxis.net/142766-im-dataset-suchen.html)

fips0705 3. Nov 2009 12:16

Datenbank: JvMemoryData • Zugriff über: ADO

im Dataset suchen
 
Hallo,
ich habe ein kleines Tool entwickelt mit dem ich eine csv Liste mit Verkaufszahlen in eine vorgeschriebene Datenstruktur umwandle.

in meiner Liste sind die Verkaufszahlen in der Struktur abgelegt.

Bezeichnung :Artikel 1
Monat :Januar
Anzahl :2

Bezeichnung :Artikel 2
Monat :Feb.
Anzahl :1

usw.

gefordert ist die Struktur:

Bezeichnung
Januar (Anzahl)
Februar
Marz
...
Dezember

Jetzt habe ich meine csv eingelesen und sie in JvMemoryData in die geforderte Struktur gebracht.

Hierbei habe ich zum Suchen (ob der Artikel bereits im JvMemoryData vorhanden) ist locate benutzt. Leider wird die Suche immer langsammer. (je größer die JvMemoryData wird)
für ca. 200.000 DS benötige ich ca. 3 h. Ein MemoryData kann ich ja nicht indizieren oder?

Es funktioniert alles nur die Zeit ist mir zu lang.

welche Möglichkeit habe ich damit die den Prozess beschleunige.
Ich habe das Tool auch schon in Access ausgeben lassen, mit ADO-Connection und select als Suche, dies ist auch schneller aber nicht praktikabel gewesen, denn dort wo das Prog. läuft sind keine ADO und BDE installiert.

Bernhard Geyer 3. Nov 2009 12:27

Re: im Dataset suchen
 
Speicher die Daten doch zum durchsuchen in einen B-Tree.

Übrigens: ADO ist überall installiert (außer du hast noch Win95 mit IE3). Jedoch muß die Jet-Engine von Access nicht überall verfügbar sein.

fips0705 3. Nov 2009 12:38

Re: im Dataset suchen
 
ok stimmt die Jet hat gefehlt.
Danke für den link. weißt du wieviel schnell Binary Trees ist.

Bernhard Geyer 3. Nov 2009 12:42

Re: im Dataset suchen
 
Zitat:

Zitat von fips0705
Danke für den link. weißt du wieviel schnell Binary Trees ist.

Um es nach Spaceballs zu sagen: "Wahnsinnig schnell". Hatten auch ein paar TStrings im Programm welche zu langsam waren (mehre Stunden Laufzeit) - Mit B-Trees war das Problem verschwunden (Laufzeit im Minutenbereich).

fips0705 3. Nov 2009 12:49

Re: im Dataset suchen
 
ok super, werde mich mal an die Arbeit machen :-)

fips0705 3. Nov 2009 14:51

Re: im Dataset suchen
 
Hallo Bernhard,
ich wollte das Beispiel von BinaryTree ausprobieren bekomme aber immer Zugriffsverletzungen. Hast du das Beispiel mal getestet oder bist du gleich in die Vollen gegangen?

fips0705 3. Nov 2009 19:47

Re: im Dataset suchen
 
sorry, ist alles ok mit dem Beispiel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 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