![]() |
Datenbank: Firebird • Version: 1.5.3 • Zugriff über: Zeos
Select funktioniert nicht
Hallo allerseits,
kann mir jemand sagen, warum dieser einfache SELECT nicht funktioniert ?
Delphi-Quellcode:
Fehlermeldung:
SELECT KUNDENNR FROM KUNDEN
Zitat:
Delphi-Quellcode:
funktioniert ebenfalls nicht. Hier wollte ich nur die Gesamtanzahl der Datensätze abfragen.
SELECT COUNT(*) AS MaxKunden FROM KUNDEN
Weiss hier jemand Rat ??? mfg Herbert |
Re: Select funktioniert nicht
Zitat:
Delphi-Quellcode:
funktioniert ebenfalls nicht. Hier wollte ich nur die Gesamtanzahl der Datensätze abfragen.
SELECT COUNT(*) AS MaxKunden FROM KUNDEN
Weiss hier jemand Rat ??? mfg Herbert[/quote] Was für eine Fehlermeldung ? |
Re: Select funktioniert nicht
Du ahst mit hoher warscheinlichkeit dei Felder in der TQeuery oder TTable fest eingeatregn guck da mal nach ob der das Feld KundenName drin ist
|
Re: Select funktioniert nicht
so,
bei der Abfrage mit COUNT(*) kommt die gleiche Fehlermeldung, wie oben. Ich habe mit ZQuery keine Felder definiert. Ich verwende jedoch TDBEdit-Felder zum Anzeigen der Felder (TDBEdit.DataField) bzw. ein Grid zum Anzeigen der Felder. Vielleicht liegt dort die Ursache? Wie könnte ich das lösen, um trotzdem mit TDBEdit die Felder anzuzeigen? mfg Herbert |
Re: Select funktioniert nicht
2 verschiedene Queries /(TQuery-Kompoenneten) verwenden.
|
Re: Select funktioniert nicht
Der erste Teilerfolgt ist schon da. Es kommen jetzt keine Fehlermeldungen mehr.
SELECT COUNT(*) FROM KUNDEN bzw. SELECT COUNT(*) AS MaxKunden FROM KUNDEN funktioniert leider noch nicht. Kennt jemand hier die genaue Syntax bzw. wie bekomme ich in das Feld MaxKunden die tatsächliche Anzahl an Datensätzen? MaxKunden ist übrigens als LONGINT definiert. mfg Herbert |
Re: Select funktioniert nicht
Hallo Herbert,
SQL-Code:
mit deiner Abfrage erzeugst du eine Eregbnismenge mit einer Zeile und einer Spalte. Für die Spalte hast du den Namen MaxKunden vergeben, damit FB nicht einen internen Namen verwendet. Um mit dem Ergebnis zu arbeiten musst du es erst noch in deine Variable MaxKunden übertragen - du arbeitest hier nicht mit Embedded SQL.
SELECT COUNT(*) AS MaxKunden FROM KUNDEN
Delphi-Quellcode:
Grüße vom marabu
var
MaxKunden: Integer; begin with Query do MaxKunden := FieldByName('MaxKunden').AsInteger; end; |
Re: Select funktioniert nicht
Danke marabu,
funktioniert super. Kannst du mir vielleicht auch sagen, ob diese Art der Abfrage schneller ist, als z.B.: SELECT KUNDENNR FROM KUNDEN und danach mit MaxKunden := ZQuery.RecordCount (was ja auch funktioniert) Jedenfalls allerbesten Dank für deinen Lösungsvorschlag. mfg Herbert |
Re: Select funktioniert nicht
Ergänzend muss ich noch sagen, dass KUNDENNR bei mir indiziert ist.
mfg Herbert |
Re: Select funktioniert nicht
Selbstverständlich ist die Aggregatfunktion, die ja auf dem Server abgearbeitet wird, schneller als die Übermittlung aller Kundennummern und das Abzählen auf dem Client, was sich hinter der property RecordCount verbirgt.
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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