Hi!
Nein, das Problem ist, dass, wenn das Zimmer noch gar nicht gebucht ist, gar kein Termin drin steht, somit kann ich natürlich auch keinen letzten Termin auslesen. Der ist dann 0, was für das Datum eben den 30.12.1899 bedeutet.
Doch das kann ich mit
Paradox nicht abschalten, weil das ja keine verschachtelten Abfragen akzeptiert.
Deshalb muss man das umständlich mit if anweisungen machen.
Aber jetzt funktionier es...
Delphi-Quellcode:
if blgt=0
then
begin
with BuchungenQuery
do
begin
sql.clear;
sql.add('
SELECT MIN(anreise) AS next FROM daten\buchungen.db WHERE (Zimmer=:zimmernummer) AND (anreise>:pdatum)');
ParamCheck := true;
ParamByName ('
pdatum').AsDate := datum;
ParamByName ('
zimmernummer').AsString :=zimmerObj[i].zimNum;
open;
if BuchungenQuery.RecordCount > 0
then
begin
first;
frei := BuchungenQuery.FieldByName('
next').AsDateTime;
end
else frei:= datum+365;
end;
if frei=0
then frei:=datum+365;
Das kann man vielleicht noch vereinfachen, aber ich habs mir jetzt nicht genau angeschaut... So ghet es aber auf jeden Fall!