Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage mittels SQL - Ergebnis? (https://www.delphipraxis.net/210414-abfrage-mittels-sql-ergebnis.html)

NoGAD 21. Apr 2022 08:43

Datenbank: ABSDatabase • Version: 7.93 • Zugriff über: ABSQuery

Abfrage mittels SQL - Ergebnis?
 
Hallo.

Wenn ich eine SQL Abfrage ausführen lasse, wie komme ich dann an das Ergebnis der "Suche"?

Bsp:

Delphi-Quellcode:
  ABSQuery1.SQL.Text := 'SELECT MAX(KUNDENNUMMER) from dbKunden;';
  ABSQuery1.Open;
  // Hier benötige ich nun den Datensatz, der gefunden wurde
  // Ich benutze kein visuelles Element, um die Daten anzuzeigen
  // weil ich nur den RecNo und die Daten des aktuellen Record benötige
ABSQuery1 ist kompatibel zur BDE. (http://www.componentace.com/help/abs...fromthebde.htm)

Danke.

stifflersmom 21. Apr 2022 08:46

AW: Abfrage mittels SQL - Ergebnis?
 
MIt FieldByName
Absquery1.FieldByName(Spaltenname).Asxxx

mkinzler 21. Apr 2022 08:57

AW: Abfrage mittels SQL - Ergebnis?
 
da das Ergebnis aus nur einem Feld besteht:

Delphi-Quellcode:
ABSQuery1.Fields[0].Value

Maliko 21. Apr 2022 10:56

AW: Abfrage mittels SQL - Ergebnis?
 
Wie sieht das in dem Fall eigentlich aus, weil da ja ne Aggregatfunktion ist? Ich verpasse dem dann immer nen Alias, daher hab ich da bisher nicht groß nachgedacht, aber was ist jetzt eigentlich der Spaltenname wenn ich mit FieldByName den Wert abfrage? kundennummer oder max(kundennummer)?

mkinzler 21. Apr 2022 10:59

AW: Abfrage mittels SQL - Ergebnis?
 
Deshalb ja mein Vorschlag über den Index 0. Sonst auf jeden fall einen Alias vergeben, den der automatische vergebene Namen für das Aggregat unterscheidet sich je nach Zugriffsbibliothek (DBMS).

stifflersmom 21. Apr 2022 10:59

AW: Abfrage mittels SQL - Ergebnis?
 
sinnvollerweise verpasst Du der Aggregatergebnis einen Alias.
Code:
select sum(netto) as Nettoumsatz von irgendwas
Dann funktioniert ein FieldbyName über den Alias hier: Nettoumsatz.
Sonst über Fields[0].

Union 21. Apr 2022 14:00

AW: Abfrage mittels SQL - Ergebnis?
 
Zitat:

Zitat von NoGAD (Beitrag 1504822)
ABSQuery1 ist kompatibel zur BDE. (http://www.componentace.com/help/abs...fromthebde.htm)

Hoffentlich nicht. Vielleicht meintest Du dass es sich von TDataSet ableitet, aber eben nicht von TQuery. Steht ja in dem Link auch überall, "BDE Replacement".

NoGAD 21. Apr 2022 15:15

AW: Abfrage mittels SQL - Ergebnis?
 
Danke für die Antworten.


Delphi-Quellcode:
ABSQuery1.Fields[0].Value
Das ergibt dann also den einzelnen gefundenen Wert. Aber einen Zugriff auf die anderen Daten dieses Records bekomme ich damit nicht?

LG

Uwe Raabe 21. Apr 2022 15:23

AW: Abfrage mittels SQL - Ergebnis?
 
Zitat:

Zitat von NoGAD (Beitrag 1504876)
Das ergibt dann also den einzelnen gefundenen Wert. Aber einen Zugriff auf die anderen Daten dieses Records bekomme ich damit nicht?

Ein
SQL-Code:
SELECT MAX(KUNDENNUMMER) from dbKunden;
liefert eben keinen Record, sondern lediglich das Maximum eines Feldwerts. Wenn alle Feldwerte den selben Wert haben, dann wäre auch der das Maximum. Welche anderen Daten welchen Records würdest du dann erwarten?

Wenn die Kundennummer eindeutig ist, kannst du das Ergebnis ja als Parameter einer anderen Query
SQL-Code:
SELECT * FROM dbKunden WHERE KUNDENNUMMER = :KdNr
verwenden, die dir dann alle Felder dieses Records liefert.

NoGAD 21. Apr 2022 15:32

AW: Abfrage mittels SQL - Ergebnis?
 
Hallo lieber Uwe,

vielen Dank für den Hinweis.

Datenbanken sind für mich ein Gräuel, damit hadere ich seit Jahren herum, weil sich mir die Prinzipien nicht erklären.

LG :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 Uhr.
Seite 1 von 3  1 23      

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