![]() |
Datenbank: Access • Version: 2007 • Zugriff über: ADO
Abfragefehler bei mehreren Einträgen
Delphi-Quellcode:
befindet sich nur ein Account in der Tabelle dann klappt alles bei mehreren Accounts sehe ich egal für welchen immer nur Account existiert nicht
Account := edAccName.Text;
ADOQuery1.Close; ADOQuery1.SQL.Text := 'select * from Accounts'; ADOQuery1.Open; While Not ADOQuery1.Eof do begin if ADOQuery1.FieldByName('Name').AsString =(Account) then Checker := ADOQuery1.FieldValues['PW'] else Begin ShowMessage('Account existiert nicht'); Exit; End; ADOQuery1.Next; end; |
Re: Abfragefehler bei mehreren Einträgen
Dein Schleifenlogik ist vollkommen falsch, da du sobald der erste Record nicht dem gewünschten entspricht du die Meldung bringst.
Ich würde es so machen:
Delphi-Quellcode:
ADOQuery1.SQL.Text := 'select * from Accounts where Name = :Name';
ADOQuery1.ParamByName('Name').AsString := Account; ADOQuery1.Open; if ADOQuery1.EOF then //EOF = True wenn keine Datensatz in Ergebnismenge vorhanden. ShowMessage('Account existiert nicht'); |
Re: Abfragefehler bei mehreren Einträgen
Wäre es nicht performanter, die Anzahl der passenden Datensätze abzufragen?
SQL-Code:
Nun muss man nur noch schauen, ob Anzahl > 0 ist.
SELECT COUNT(1) AS Anzahl
FROM Accounts WHERE Name=:name |
Re: Abfragefehler bei mehreren Einträgen
Zitat:
|
Re: Abfragefehler bei mehreren Einträgen
Ja schon, aber ich habe irgendwie noch im Hinterkopf, dass das Abfragen aller Felder aller passenden Datensätze nicht besonders performant gegenüber einer Aggregatfunktion sein soll. Ich kann mich natürlich auch irren.
|
Re: Abfragefehler bei mehreren Einträgen
Die Abfrage sollte eigentlich nur einen Eintrag liefern (sonst wäre etwas falsch). Natürlich könnte man sich auf die benötigten Felder bewschränken
|
Re: Abfragefehler bei mehreren Einträgen
:oops: Sry, habe das mit der Eindeutigkeit übersehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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-2025 by Thomas Breitkreuz