![]() |
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 ist kompatibel zur BDE. (
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 ![]() Danke. |
AW: Abfrage mittels SQL - Ergebnis?
MIt FieldByName
Absquery1.FieldByName(Spaltenname).Asxxx |
AW: Abfrage mittels SQL - Ergebnis?
da das Ergebnis aus nur einem Feld besteht:
Delphi-Quellcode:
ABSQuery1.Fields[0].Value
|
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)?
|
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).
|
AW: Abfrage mittels SQL - Ergebnis?
sinnvollerweise verpasst Du der Aggregatergebnis einen Alias.
Code:
Dann funktioniert ein FieldbyName über den Alias hier: Nettoumsatz.
select sum(netto) as Nettoumsatz von irgendwas
Sonst über Fields[0]. |
AW: Abfrage mittels SQL - Ergebnis?
Zitat:
|
AW: Abfrage mittels SQL - Ergebnis?
Danke für die Antworten.
Delphi-Quellcode:
Das ergibt dann also den einzelnen gefundenen Wert. Aber einen Zugriff auf die anderen Daten dieses Records bekomme ich damit nicht?
ABSQuery1.Fields[0].Value
LG |
AW: Abfrage mittels SQL - Ergebnis?
Zitat:
SQL-Code:
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?
SELECT MAX(KUNDENNUMMER) from dbKunden;
Wenn die Kundennummer eindeutig ist, kannst du das Ergebnis ja als Parameter einer anderen Query
SQL-Code:
verwenden, die dir dann alle Felder dieses Records liefert.
SELECT * FROM dbKunden WHERE KUNDENNUMMER = :KdNr
|
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 18:00 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