Hola.
Cita:
lo que le planteas, no te da una fecha exacta de cuando este libre la cabaña
|
Tenés toda la razón, no se me ocurrió pensar que podrían reservar con fecha anterior a una reserva...
, pero no veo la necesidad de recorrer las fechas, creo que podría hacer algo como:
Código Delphi
[-]
function TForm1.CabaniaOcupada(Numero: string; Fecha: TDateTime): Boolean;
begin
with qyCabania do
begin
SQL.Text:= 'SELECT * FROM CABANIAS WHERE NUMERO = :NUM';
ParamByName('NUM').AsString:= Numero;
Open;
Result:= (Fecha >= FieldByName('OCUPADADESDE').AsDateTime) and
(Fecha <= FieldByName('OCUPADAHASTA').AsDateTime);
if IsEmpty then
ShowMessage('cabaña inexistente');
Close;
end;
end;
Llamada de ejemplo:
Código Delphi
[-]
...
if CabaniaOcupada('001', DateTimePicker1.DateTime) then
ShowMessage('OCUPADA')
else
ShowMessage('LIBRE');
Un saludo.