Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#1

DB-Felder über Methode Variablen zuweisen

  Alt 21. Jun 2010, 08:36
Delphi-Version: 2010
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
Michael Kübler
  Mit Zitat antworten Zitat