Hallo, ich bins wieder
1. danke nochmal für die posts ...hab einiges umgesetzt und erweitert und es hat funktioniert
2. ich hab ne kurze frage
Delphi-Quellcode:
begin
ende := ADOQuery_Buchen.FieldByName('
Abreise').AsDateTime;
anfang:= ADOQuery_Buchen.FieldByName('
Anreise').AsDateTime;
with ADOQuery_Buchen4
do begin
Close;
SQL.Text:='
SELECT * FROM Zimmer ';
SQL.Text:='
WHERE' ;
SQL.Text:='
((bu_anreise.Date < anfang) AND (bu_abreise.Date < ende)) AND ((bu_anreise.Date < ende) AND (bu_abreise.Date > anfang)) ' ;
SQL.Text:='
((anfang < bu_anreise.Date) AND (bu_abreise.Date < ende)) AND ((bu_anreise.Date < ende) AND (bu_abreise.Date > anfang)) ' ;
SQL.Text:='
((anfang < bu_anreise.Date) AND (ende < bu_abreise.Date)) AND ((bu_anreise.Date < ende) AND (bu_abreise.Date > anfang))' ;
Open;
end;
ich möchte für die 3 möglichen fälle das datum der belegung und eingabe prüfen ...wie kann ich den quelltext oben umschreiben, dass er richtig ist und ich keine fehlermeldung ( Unions-Abfrage) erhalte?
LG Sergej
Versuch es doch bitte mal mit
Delphi-Quellcode:
SQL.Clear;
SQL.Add('
SELECT * FROM Zimmer WHERE');
SQL.Add('
((bu_anreise.Date < anfang) AND (bu_abreise.Date < ende))');
SQL.Add('
and ((bu_anreise.Date < ende) AND (bu_abreise.Date > anfang))');
SQL.Add('
and ((anfang < bu_anreise.Date) AND (bu_abreise.Date < ende))');
SQL.Add('
and ((bu_anreise.Date < ende) AND (bu_abreise.Date > anfang))');
SQL.Add('
and ((anfang < bu_anreise.Date) AND (ende < bu_abreise.Date))');
SQL.Add('
and ((bu_anreise.Date < ende) AND (bu_abreise.Date > anfang))');
mit
SQL.Text:='...'
weist Du der Abfrage immer neune Text zu.
Daruch hast Du mit jeder Anweisung die vorherige überschrieben, so dass am Ende Deine Abfrage so aussahl:
'((anfang < bu_anreise.Date) AND (ende < bu_abreise.Date)) AND ((bu_anreise.Date < ende) AND (bu_abreise.Date > anfang))'
und das ist kein vollständiges
SQL.