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