Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
831 Beiträge
 
Delphi 10.4 Sydney
 
#1

Query springt nicht zum ersten Datensatz

  Alt 1. Mär 2019, 10:14
Datenbank: MySQL • Version: 5 • Zugriff über: UniDac
Hallo Zusammen,

ich habe ein für mich nicht erklärbares Problem mit einer UniQuery von UniDac.

Ich habe alle Einstellungen meiner Software in einer Tabelle gespeichert, mit den Spalten:
ID: für den Schlüssel
einstellung: um was für eine Einstellung handelt es sich - danach wird auch gesucht
wert: das ist der eigentliche Wert der Einstellung
kommentar: hier wird die Einstellung die Zusammensetzung der Werte erklärt.

Dann habe ich eine Function geschrieben, um die Einstellung schnell abholen zu können, ohne ständig auf die DB zugreifen zu müssen. Das heißt ich halte die Daten in der Query und hole sie bei Bedarf mit der Function Find_Property(einstellung, spalte: string):string raus. Spalte gibt an, aus welcher Spalte der Einstellungswert zu holen ist. Ich habe auch eine Variante, wo eine Einstellung mehrere werte haben kann...

Delphi-Quellcode:
function TMySQLDB.Find_Property(Einstellung, Spalte: string): string;
var I: integer;
begin
   Result:='';
   FQuery_Einstellungen.First; //das scheint wirkungslos zu sein
   if FQuery_Einstellungen.Bof then begin //zum Testen eingebaut
      while (not FQuery_Einstellungen.Eof) and (FQuery_Einstellungen.FieldByName('Einstellung').AsString<>Einstellung) do begin
         FQuery_Einstellungen.Next;
      end;
      if FQuery_Einstellungen.FieldByName('Einstellung').AsString=Einstellung then begin
         Result:=FQuery_Einstellungen.FieldByName(Spalte).AsString;
      end;
   end;
end;
Eigentlich läuft die Funktion gut, aber auf einmal springt sie nicht mehr zum ersten Datensatz, sondern bleibt auf dem letzten stehen.
Die Query hat 53 Datensätze, was ich geprüft habe.

Hat jemand eine Idee?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat