Hallo,
ist vielleicht ein blöder Titel, aber mir fällt nichts besseres als Titel ein - kann ihn aber später gerne ändern.
Ich habe eine Frage bezüglich dem Laden von Daten aus der Datenbank und der Speicherung in Objekte. Also, stellt euch vor, ich möchte Artikel aus einer Datenbank laden und in einer TreeView anzeigen. Ein Artikel enthält die Felder "ArtikelID (Int), OrdnerId(int), Titel (VarChar), ArtikelText(Blob/Text), ErstelltAm(int) ...."
So, jetzt lade ich also alle Artikel aus der Datenbank, erstelle Objekte und zeige sie in einer TreeView an. So kann momentan nur die ArtikelID (in TreeView.Data) und der Titel (in der Item-Caption) verwendet bzw. angezeigt werden. Alle anderen Daten werden erst angezeigt, wenn man den Artikel öffnet.
Die Frage ist jetzt, ob ich trotzdem gleich alle Daten aus der
DB laden soll, oder ob ich mir erst bestimmte Felder ausgeben lassen und die anderen bei Bedarf nachladen soll. Immerhin würde es bestimmt einiges an Arbeitsspeicher verbrauchen, immer alle Daten abzufragen. Andererseits ist es auch mehr Arbeit, die Daten nachzuladen.
Hier mal mein "Nachlade-Modell"
Delphi-Quellcode:
procedure TJKDB.Read(DataObj: TObject; Teaser: Boolean = False);
begin
if (DataObj) is TArticle then
begin
if (DataObj) is TKomCategory then
begin
SQL_Where:='"artikelid" = '+IntToStr(TKomArticle(DataObj).ID);
SelectAll(jkKomArticles);
TKomArticle(DataObj).ID:=getInteger('artikelid');
TKomArticle(DataObj).Titel:=getString('titel');
//Hier werden die Daten nachgeladen
if not (Teaser) then
begin
TKomCategory(DataObj).Text:=getBlob('artikeltext');
TKomCategory(DataObj).Erstellt:=getInteger('erstelltam');
...
...
end;
end;
end;
Welche Methode ist die bessere? Gleich alles auf einmal oder doch lieber Nachladen - wobei das mehr "Programmier"-Aufwand ist.
Danke im Voraus