![]() |
Datenbank: MDB • Version: keine Angabe • Zugriff über: TADOQuery
Anzahl von Datenbank Einträgen.
Guten morgen Liebe Delphi Praxis Community.
Habe ein Sql Statment gebastelt das mir die Anzahl der Einträge meiner Datenbank zurück geben soll.Ich brauch die Anzahl der Datenbankeinträge. Beim Ersten aufruf gibt er 2 zurück was momentan richtig ist. Bei jeden weiteren Aufruf kommt einer hinzu. Warum ist das so ? Vermutlich ist Query.SQL.count falsch oder ? Query = class var Query : TADOQuery; Ich brauche die Anzahl für eine Fortlaufende Dokumenten Nummer.
Code:
Habe zwei Sachen aus dem Internet ausprobiert die gehen aber leider auch nicht.
Query.SQL.Add('SELECT COUNT (ID) from Document');
Result := Query.SQL.Count; |
AW: Anzahl von Datenbank Einträgen.
Schau doch nochmal genau was
Delphi-Quellcode:
ist. Nicht
Query.SQL
Delphi-Quellcode:
, sondern
Query
Delphi-Quellcode:
. Was du damit aktiv anstellst, und was du mit
Query.SQL
Delphi-Quellcode:
abfragst :wink:
Query.SQL.Count
|
AW: Anzahl von Datenbank Einträgen.
Verwende Query.sql.Text.
Sonst verlängerst Du die Query immer weiter. Die Abfrage geht dann auch mit Query.Fields[0], oder Du musst eine Klausel "AS Anzahl" oder so anhängen. |
AW: Anzahl von Datenbank Einträgen.
Moin,
probiere es mal so:
Delphi-Quellcode:
Query.SQL.Text := 'SELECT COUNT (ID) AS counter from Document';
Query.Open; Result := Query.FieldByName('counter').AsInteger; |
AW: Anzahl von Datenbank Einträgen.
Hallo,
so wie ich das sehe fügst du immer wieder das gleiche Statement hinzu (ohne zu löschen [SQL.Clear]) und fragst dann nach der Anzahl der Zeilen von dem Statement ab. Das muss immer wachsen. Im Statement hast du Count(ID) enthalten, daher musst du danach das erste Feld der Query abfragen. Die zweite Zeile gehört dort nicht rein. Gruß Matze |
AW: Anzahl von Datenbank Einträgen.
Und rapantes Code noch einmal mit Kommentaren zum Verständnis:
Delphi-Quellcode:
(* Gesamtes Statement auf einmal setzen -> evtl. vorhandenes überschreiben *)
Query.SQL.Text := 'SELECT COUNT (ID) AS counter from Document'; (* Abfrage auf die DB loslassen *) Query.Open; (* Ergebnismenge unter Verwendung des im Statement angegeben Feldalias auswerten *) Result := Query.FieldByName('counter').AsInteger; |
AW: Anzahl von Datenbank Einträgen.
Du solltest lieber SELECT COUNT(*) statt SELECT COUNT(ID) nehmen.
1. Weils schneller sein müsste und 2. Weil du nur so sicher gehen kannst, die Anzahl der Datensätze zu erhalten, denn NULL-Werte in der Spalte ID würden bei SELECT COUNT(ID) nicht mitgezählt werden. |
AW: Anzahl von Datenbank Einträgen.
Zitat:
PS counter kann man oder zumindest ich nicht verwenden ist Reserviert. Danke für eure Antworten:) Funktioniert jetzt und ich verstehe es auch :) |
AW: Anzahl von Datenbank Einträgen.
Zitat:
Delphi-Quellcode:
Das funktioniert genauso gut. Inwieweit dieser Alias allerdings auf den Inhalt schließen lässt, das steht auf einem anderen Blatt :mrgreen:
Query.SQL.Text := 'SELECT COUNT(*) AS Erbsensuppe from Document';
Query.Open; Result := Query.FieldByName('Erbsensuppe').AsInteger; |
AW: Anzahl von Datenbank Einträgen.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 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