Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird und Delphi7 SELECT (https://www.delphipraxis.net/161567-firebird-und-delphi7-select.html)

cam 9. Jul 2011 17:49

Datenbank: Firebird • Version: 2.5 • Zugriff über: TIB

Firebird und Delphi7 SELECT
 
Hallo,

das ist jetzt vielleicht eine blöde Frage, aber ich suche schon seit Stunden und kann nichts finden.
Wie komme ich an das Ergebnis einer SELECT-Abfrage mit Delphi7-TIB und Firebird???

Mit Delphi2009 und MSSQL ist das ja kein Problem, aber irgendwie funktioniert das hier anders und ich weiß nicht wie?

So sieht meine aktuelle Version aus:
Delphi-Quellcode:
  IB_Query.SQL.Clear;
  IB_Query.SQL.Append('SELECT MAX(ID) FROM BPATH');
  IB_Query.Open;
  id:= IB_Query.FieldByName('BPATH.ID').AsInteger;
:wall:

haentschman 9. Jul 2011 18:02

AW: Firebird und Delphi7 SELECT
 
Hallöle... :wink:

versuch mal:
Delphi-Quellcode:
IB_Query.SQL.Text:= 'SELECT MAX(ID) FROM BPATH';
IB_Query.Open;
id:= IB_Query.FieldByName('ID').AsInteger;

mkinzler 9. Jul 2011 19:43

AW: Firebird und Delphi7 SELECT
 
Das Feld heisst anders. Gibt ihm am Besten einen Namen:

Delphi-Quellcode:
  IB_Query.SQL.Text := 'SELECT MAX(ID) as MaxID FROM BPATH';;
  IB_Query.Open;
  id:= IB_Query.FieldByName('MaxID').AsInteger;

DeddyH 10. Jul 2011 08:17

AW: Firebird und Delphi7 SELECT
 
Oder über den Feldindex zugreifen.
Delphi-Quellcode:
id:= IB_Query.Fields[0].AsInteger;

haentschman 10. Jul 2011 09:41

AW: Firebird und Delphi7 SELECT
 
Zitat:

Das Feld heisst anders.
...woher weißt du das ? Unabhängig davon, daß deine und DeddyH´s Vorschläge funktionieren, in Zeos z.B. würde der Feldname "ID" lauten. Er könnte sich das Ergebnis mal aus Interesse in einem Grid anzeigen lassen um den Feldnamen herauszufinden. Danach kann er entscheiden welche Variante am wenigsten Arbeit verursacht 8-)

mkinzler 10. Jul 2011 09:49

AW: Firebird und Delphi7 SELECT
 
Da Max eine Aggregatfunktion ist heisst das Feld in der Ergebnismenge normalerweise anders: MAX, Max_ID, maxid, ....(kommt auf die Bibliothek an'). Es kann natüprlich sein, dass es bei Zeos dann genauseo wie das Quellfeld heisst.

Nur wie heisst es dann bei einer Abfrage wie
SQL-Code:
select MIN(ID), MAX(ID), SUM(ID), AVG(ID) from <Tabelle>;
?

DeddyH 10. Jul 2011 09:55

AW: Firebird und Delphi7 SELECT
 
Es kann ja nicht darum gehen, was erstmal die wenigste Arbeit macht, sondern darum, was zuverlässig funktioniert (auch wenn man später evtl. eine andere Zugriffsbibliothek verwendet).


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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