Hallo Alle,
ich habe wieder einmal ein Problem mit der Funktion "Lookup". Ich möchte ermittelt, ob ein Wert schon in der Tabelle Unterpartie vorhanden ist.
Die QueryUnterpartie_ID setzt das folgende Statement ab:
SQL-Code:
Select *
from Unterpartie
In der Funktion "UPartienummerExistiert" habe ich mal eine Whileschleife eingebaut, die mir alle vorhandenen Werte in "Ergebnis" anzeigt.
Im Moment sind zwei Werte in der Tabelle vorhanden:
1,
2
Diese werden auch korrekt in "Ergebnis" angezeigt.
Delphi-Quellcode:
function TDMUnterpartie.UPartieNummerExistiert(nummer: String): boolean;
var V: Variant;
Ergebnis: String;
begin
QueryUnterpartie_ID.Open;
while not QueryUnterpartie_ID.Eof do
begin
Ergebnis:= Ergebnis + char(13)+ QueryUnterpartie_ID.
FieldByName('Unterpartie_ID').AsString;
QueryUnterpartie_ID.Next;
end;
showmessage(Ergebnis);
//Spalte //Wert //Rückgabewert
V := QueryUnterpartie_ID.Lookup('Unterpartie_ID', nummer, 'Unterpartie_ID');
result:= not(VarType(V) in [varNull]);
QueryUnterpartie_ID.Close;
end;
Das Problem: Die Funktion liefert für den Wert "1" false zurück, obwohl der Wert bereits in der Tabelle vorhanden ist.
Was mache ich falsch?
Gruß,
Barnti