AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfrage mittels SQL - Ergebnis?
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage mittels SQL - Ergebnis?

Ein Thema von NoGAD · begonnen am 21. Apr 2022 · letzter Beitrag vom 22. Apr 2022
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#1

Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 08:43
Datenbank: ABSDatabase • Version: 7.93 • Zugriff über: ABSQuery
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.
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
374 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 08:46
MIt FieldByName
Absquery1.FieldByName(Spaltenname).Asxxx
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 08:57
da das Ergebnis aus nur einem Feld besteht:

ABSQuery1.Fields[0].Value
Markus Kinzler
  Mit Zitat antworten Zitat
Maliko

Registriert seit: 20. Jun 2019
89 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 10:56
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)?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 10:59
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).
Markus Kinzler
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
374 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 10:59
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].
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 14:00
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".
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 15:15
Danke für die Antworten.


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
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.006 Beiträge
 
Delphi 12 Athens
 
#9

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 15:23
Das ergibt dann also den einzelnen gefundenen Wert. Aber einen Zugriff auf die anderen Daten dieses Records bekomme ich damit nicht?
Ein 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 SELECT * FROM dbKunden WHERE KUNDENNUMMER = :KdNr verwenden, die dir dann alle Felder dieses Records liefert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Abfrage mittels SQL - Ergebnis?

  Alt 21. Apr 2022, 15:32
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
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 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