Hi,
habe ein Problem mit dem Finden eines Datensatzes durch den Aufruf von
query.Lookup.
Dazu folgendes:
Delphi-Quellcode:
Function1(nummer: String):string;
begin
while PartieNummerExistiert(IntToStr(Nummer)) do
begin
Nummer:= Nummer +1;
end;
result:= IntToStr(nummer);
end;
Funktion1 soll eine Nummer zurückgeben, wenn diese nicht existiert. Andernfalls wird die nummer inkrementiert, bis diese nicht gefunden wird.
Delphi-Quellcode:
Function PartieNummerExistiert(Nummer: String):boolean;
var V: Variant;
begin
Query_Partie_ID.Open; //Spalte //Wert //Rückgabewert
V := Query_Partie_ID.Lookup('Partie_ID', VarArrayOf([nummer]), 'Partie_ID');
result:= not(VarType(V) in [varNull]);
Query_Partie_ID.Close;
end;
Die Funktion gibt zurück, ob die übergebene Nummer in der Tabelle vorkommt.
Mein Problem:
In der Tabelle sind 4 Einträge wobei die Partienummer von 5 bis 8 vorhanden ist. Wird Funktion1 mit dem Wert "5" aufgerufen, wird dieser gefunden und "nummer" inkrementiert. Wird die Funktion "PartieNummerExistiert" mit dem Wert "6" aufgerufen, so wird dierser nicht gefunden, was aber der Fall sein sollte...!?
Wo ist der Fehler? Liegt es irgentwie an dem Open, Close in "PartieNummerExistiert" ? Kann mir jemand einen Tip geben?
Danke & Gruß,
Barnti