AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfragefehler bei mehreren Einträgen
Thema durchsuchen
Ansicht
Themen-Optionen

Abfragefehler bei mehreren Einträgen

Ein Thema von Gehstock · begonnen am 31. Aug 2008 · letzter Beitrag vom 31. Aug 2008
Antwort Antwort
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

Abfragefehler bei mehreren Einträgen

  Alt 31. Aug 2008, 09:24
Datenbank: Access • Version: 2007 • Zugriff über: ADO
Delphi-Quellcode:
  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;
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
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Abfragefehler bei mehreren Einträgen

  Alt 31. Aug 2008, 09:28
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');
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

Re: Abfragefehler bei mehreren Einträgen

  Alt 31. Aug 2008, 10:03
Wäre es nicht performanter, die Anzahl der passenden Datensätze abzufragen?
SQL-Code:
SELECT COUNT(1) AS Anzahl
FROM Accounts
WHERE Name=:name
Nun muss man nur noch schauen, ob Anzahl > 0 ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Abfragefehler bei mehreren Einträgen

  Alt 31. Aug 2008, 10:56
Zitat von DeddyH:
Wäre es nicht performanter, die Anzahl der passenden Datensätze abzufragen?
SQL-Code:
SELECT COUNT(1) AS Anzahl
FROM Accounts
WHERE Name=:name
Nun muss man nur noch schauen, ob Anzahl > 0 ist.
Hast du denn meinen Beitrag angeschaut
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

Re: Abfragefehler bei mehreren Einträgen

  Alt 31. Aug 2008, 11:04
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Abfragefehler bei mehreren Einträgen

  Alt 31. Aug 2008, 11:06
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

Re: Abfragefehler bei mehreren Einträgen

  Alt 31. Aug 2008, 11:08
Sry, habe das mit der Eindeutigkeit übersehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:59 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