AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank in VirtualTreeView anzeigen und auswerten
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank in VirtualTreeView anzeigen und auswerten

Ein Thema von Jens Hartmann · begonnen am 3. Mär 2009 · letzter Beitrag vom 20. Mär 2009
 
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#12

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 10. Mär 2009, 21:00
Sieht ganz gut aus, aber einen müssen wir abziehen, hätten die bei Rosental gesagt.

Du hast ein
VST.NodeDataSize := SizeOf(TOMB256PLUS); doppelt.

Eigentlich reicht der eine im CreateForm.

Wenn du einen Datensatz hinzufügst, würde ich die Daten direkt in das VST Objekt schreiben und dem VST hinzufügen.
Erst in die DB schreiben und dann wieder alle DS laden, um dann zum letzten zu springen um diesen dann in das Objekt zu kopieren
erscheint mir etwas umständlich.


Kleine Anmerkung noch zu der Recordlösung.
Dort nutzt du die Datentype String und Widestring. Dieses sind Zeigertypen.

Records sind einfach ausdrückt zusammenhängende Speicherblöcke optimal ohne Zeiger drin.
So kann dieser Speicherblock direkt z.B. von/auf Festplatte geschrieben/geladen werden ohne die Daten im Speicher zu suchen zu müssen.

Der VST z.B. nutzt die Records um Geschwindigkeit gut zu machen.
Bei 100 Datensätzen wird nur 1 mal Speicher belegt. Dadurch geht das sehr schnell.
Nutzt du nun Huge-/Wide-Strings dann wird im Record nur ein Zeiger zu dem String abgelegt.

Der kann zwar ganz normal genutzt werden, wird aber vom VST nicht mehr freigegeben und du erhälst Speicherlöcher.
Das kannst du mit dem FastMM kontrollieren. Ein Beispiel befindet sich auch im DP Stammtischvideo #2.

Es gibt 2,5 Möglichkeiten da drum rum zu kommen.
1) Shortstrings verwenden z.B. String[255] wobei die Stringlänge =<255 sein muss
2) du gibts den Huge-/Wide-String frei bei dem onFreeNode Ereignis
2,5) du schaltest die Hugestrings im Compiler aus

Die Objektmethode ist dort anders.
Im onFreeNode wird das komplett Objekt freigegeben also ist das gut.
Nachteil bei 100 Datensätzen fordert der VST 100 mal Speicher für den Knoten im addNode an. Dauert dadurch etwas länger.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
 


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 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz