Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Query "Into Array" (https://www.delphipraxis.net/159530-query-into-array.html)

-Phantom- 31. Mär 2011 22:11

Datenbank: BDE • Version: 7.0 • Zugriff über: DB

Query "Into Array"
 
Hey Leute,

Ich wollte mir mal so einen Summenrechner machen und das mit einer SQL abfrage :
Delphi-Quellcode:
q.SQL.Clear;
q.SQL.Add('Select SUM(auf_nsumme) From Auftrag.db INTO Array agesamt');
Man kann nun erkennen das ich das Ergebnis aus "SUM" speichern will aber wie machen ich das?! So wie bei mir gebt es nicht.

PS: Bin Datenbank Anfänger

alzaimar 31. Mär 2011 22:29

AW: Query "Into Array"
 
Die Datenbankabfrage liefert eine Ergebnismenge. Die wird i.A. als Tabelle dargestellt. Bei Dir besteht die Tabelle aus einer Spalte und einer Zeile.

Durch diese Tabelle läufst Du zeilenweise durch und kannst dann auf die Inhalte über die 'Fields' und 'FieldByName' Eigenschaft zugreifen.

Probier mal ein wenig rum und schau Dir an, was Dir so eine Query so alles bietet. Ich bin mir sicher, Du kommst selbst drauf.

-Phantom- 31. Mär 2011 22:59

AW: Query "Into Array"
 
Wie heißt den die Tabelle wo das dring steht?! "q.??"

Jumpy 31. Mär 2011 23:48

AW: Query "Into Array"
 
Du benutzt ja irgendein Objekt, um deine Datenbank abzufragen, z.B. ne Querey.
Das ist dann wohl das q in deinem Code oben.

q.SQL.Add('Select SUM(auf_nsumme) From Auftrag.db)

oder so, sollte nun dein SQL-Statement sein, wobei ich mir nicht sicher bin, ob das so richtig ist, kenn aber BDE nicht (bin ein ADO-Kind). In Oracle würde dein From bedeuten: Tabelle db aus dem Schema Auftrag und ich denke, dass doch eher die Tabelle Auftrag heißt, oder?

Auf jeden Fall öffnest du die Abfrage mit

q.open

und mit

Delphi-Quellcode:
q.Fields
oder ähnlich kannst du die Spalten ansprechen (in deinem Fall nur eine, daher q.Fields[0]??)

Mit q.Next oder ähnl. kannst du die Ergebnismenge Zeilenweise durchgehen (nur das das obige Statement, wie von alzaimar gesagt nur eine Zeile zurückliefert und daher nicht in einem Array gespeichert werden muss, ne Variable reicht.

Delphi-Quellcode:
MeineVariable := q.Fields[0].Value
oder so ähnlich

P.S.: Da ich nicht genau weiß, welche Komponente du nun benutzt und wie da die Methoden heißen, hab ich immer "oder so ähnl." dahingeschrieben. ;-)

-Phantom- 1. Apr 2011 15:34

AW: Query "Into Array"
 
Danke Klappt wunderbar


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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 by Thomas Breitkreuz