Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Fr 30.08.02 19:58 
Hi,

ich hab ne SQL Datenbank mit 100.000 Einträgen darin welche ich per Knopfdruck in eine TListBox einlese
ausblenden Quelltext
1:
ListBox1.Items.Add(Query.FieldByName('bla').Text);					

das dauert eeeeeeewig lange... wenn ich aber zur anzeige ein DBGrid benutze sind die daten in weniger als 1 Sek im DBGrid drinne...

gibt es ne möglichkeit die auflistung in der ListBox in etwa so schnell zu machen wie im DBGrid??? (Das DBGrid kann ich nich nehmen weil es vom aussehen her absolut 0000-nicht in's Design passt..)

Au'revoir,
Aya
Arakis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 344



BeitragVerfasst: Fr 30.08.02 20:02 
Hi Aya, du musst wissen, dass das DBGrid vor Borland nicht alle 100.000 Einträge auf einmal liest 8)
Erst wenn du anfängst zu scrollen, werden die Daten dynamisch nachgeladen, da daduch ergibt sich ein ernormer Geschwindigkeitsvorteil.
Wie man so was in einer Listbox realisiert weiß ich leider nicht. :(

Bis dann
user defined image

_________________
Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 30.08.02 21:35 
Hallo,

du solltest schon einiges an Geschwindigkeit rausholen wenn du vor dem Füllen
ausblenden Quelltext
1:
Listbox1.Items.BeginUpdate;					

und danach
ausblenden Quelltext
1:
Listbox1.Items.EndUpdate;					

aufrufst. Damit verhinderst du, das nach jedem hinzugefügten Eintrag die Listbox neu gezeichnet wird.

Gruß
Klabautermann
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Sa 31.08.02 15:10 
Hi,

falls du mit MSSQL arbeiten solltest, benutze doch mal den Firehouse Cursor (CursorLocation=clUseServer, Cursortype=ctForwardOnly, Locktype=ltReadOnly). Ist für dein Fall genau das Passende und du gewinnst damit mit Sicherheit um das 20-fache an Geschwindigkeit.

Ausserdem kannst du noch dein CacheSize z.B. auf 100 setzen um noch etwas schneller durchscrollen zu können.

Die ganzen Eigenschaften beziehen sich auf TADODataset.

Gruss,
Tom