Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abspeichern der Werte einer SQL-Abfrage (https://www.delphipraxis.net/56782-abspeichern-der-werte-einer-sql-abfrage.html)

waschlap 11. Nov 2005 06:33

Datenbank: Interbase • Zugriff über: SQL - Abfrage

Abspeichern der Werte einer SQL-Abfrage
 
Hallo,


ich hab da nen ernsthaftes Problem und zwar ich habe eine sql-abfrage bei der ich mehr als nur ein Wert zurückbekommen um genau zu sein sind es drei spalten und z.B je Spalte 4 Zeilen(Werte). nun müsste ich diese in eine variable abspeichern oder array, nun die Fragen ist dies möglich, wenn ja wie? Zweitens gibt es eine einfachere Lösung als ein Array.

Beispiel Werte:

Spalten: Vorname Nachname Telefon
Zeile: Dieter Müller 45288
Hans Dampf 87552
Siegfried Glück 87788 => Das ist Ergebnis aus meiner SQL abfrage.


P.S: Die SQL-Abfrage ändert sich, sprich es können auch mehr oder weniger Werte werden(dynamisch sollte es sein).


Vielen Dank für eure Antworten.

Mfg
Manu :gruebel:

chaosben 11. Nov 2005 07:37

Re: Abspeichern der Werte einer SQL-Abfrage
 
Da gibt es zum Beispiel ein ClientDataSet, das die Daten dür dich halten kann.

Alternativ deklarierst du dir einen Record-Typ mit den gewünschten Feldern und erzeugst dann eine TList oder ein TStrings mit den ganzen Daten.

Beispiel:
Delphi-Quellcode:
TPerson = record
  Name,
  Vorname : String;
  Nummer : Integer; //oder auch String;
end;
PPerson = ^TPerson;
...
//Dann gehst du durch deine Results des Querys
var
  Pers : PPerson;
while not Qry1.eof do
begin
  New(Pers);
  Pers.Name=Qry1.FieldByName...
  ...
  List.AddObject(Pers.Name+','+Pers.Vorname,Pers);
  Qry1.Next;
end;
..
//Und später nicht vergessen, den Speicher freizugeben

for idx:=0 to List.Count-1 do
  Dispose(PPerson(List.Objects[idx]));
Die Sache mit einer StringList zu machen, hat den Vorteil, das du relativ schnell und einfach eine List mit den Namen anzeigen kannst.

Bitte nicht meckern, wenn der Code nicht 100% echt ist, aber im Groben sollte er gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz