Hallo zusammen,
ich stehe gerade vor einem Problem, für welches IHR - wie immer - die Lösung bereits parat habt. Da es ich nicht unbedingt um eine
DB-Problematik handelt, denke ich, ich bin in dieser Rubrik richtig.
Folgendes:
Im Rahmen der Trennung von Darstellung und Funktion habe ich mir eine Klasse gebastelt. Es handelt sich vereinfacht ausgedrückt um einen Kalender. Die Klasse holt / speichert die Daten in/aus einer Datenbank (Firebird). Bislang war es "nur" notwendig, Wertepaare (String und Integer) aus der Datenbank auszulesen. Dazu habe ich das "String"-Feld in eine StringList und den Integer-Wert über TObject(IntegerWert) dem StringList-Eintrag zugeordnet. Das funktioniert einwandrei.
Ungefähr so:
Delphi-Quellcode:
procedure TMeineKlasse.HoleDaten(DestStrList : TStringList);
begin
[...]
DestStrList.AddObject(QueryXYZ.FieldByName('StrFeld').AsString, TObject(QueryXYZ.FieldByName('IntFeld').AsInteger));
end;
Nun möchte ich aber mehrere Felder auslesen, hier funktioniert ja o.g. System nicht mehr. Bevor ich meine Idee in die Tat umsetze (s. unten) möchte ich jedoch sicher sein, dass es keine "schönere" Lösung für geschildertes Problem gibt.
Meine Lösung: Zwei Klassen-Methoden, die erste liest den ersten Datensatz aus und schreib ihn über folgende Funktion in die entsprechenden Variablen. Als Funktionsergebnis wird die Anzahl der vorhandenen Datensätze zurückgegeben:
function HoleErstenDatensatz(VAR int1: integer; var int2: integer; var str1: string; var str2: string) : integer;
Dann wird der Zeiger auf den nächsten Datensatz gelegt. Das weitere auslesen wird über eine zweite - ähnliche - Funktion vorgenommen.
Ich hoffe, mein Vorhaben ist klar und hoffe, dass mir jemand einen einfach(eren) Lösungsweg zeigen kann
Michael