Consulta dias existentes no período
Pessoal,
Seguinte: Estou fazendo um Sistema para um aparthotel. Tenho uma tabela com vários registros dentre eles duas datas (DataEnt e DataSai) e o Apartamento. Não posso permitir que o usuário salve um registro para um determinado dia num mesmo apartamento.
Ex:
Cod Apto DataEnt DataSai
1 101 10/10/03 12:00:00 15/10/03 12:00:00
2 101 14/10/03 12:00:00 17/10/03 12:00:00
Não posso permitir que o registro 02 seja incluído, pois dia 14 ainda compreende a hospedagem do registro 01.
1º) Como posso fazer essa consulta, com base nos dias??
2º) Atentei agora para outro detalhe (eu não havia colocado as horas (datetime) no registro... Mas vai ser necessário pois pode haver uma hospedagem para o dia 15/10 (que está ocupado) para depois das 12horas!
Como faço essa consulta? :?:
O que vocês sugerem para eu resolver o 2º problema!? :?:
Desde Já Agradeço
Seguinte: Estou fazendo um Sistema para um aparthotel. Tenho uma tabela com vários registros dentre eles duas datas (DataEnt e DataSai) e o Apartamento. Não posso permitir que o usuário salve um registro para um determinado dia num mesmo apartamento.
Ex:
Cod Apto DataEnt DataSai
1 101 10/10/03 12:00:00 15/10/03 12:00:00
2 101 14/10/03 12:00:00 17/10/03 12:00:00
Não posso permitir que o registro 02 seja incluído, pois dia 14 ainda compreende a hospedagem do registro 01.
1º) Como posso fazer essa consulta, com base nos dias??
2º) Atentei agora para outro detalhe (eu não havia colocado as horas (datetime) no registro... Mas vai ser necessário pois pode haver uma hospedagem para o dia 15/10 (que está ocupado) para depois das 12horas!
Como faço essa consulta? :?:
O que vocês sugerem para eu resolver o 2º problema!? :?:
Desde Já Agradeço
Rafaelunp
Curtidas 0
Respostas
Rafaelunp
18/10/2003
Pessoal?!
GOSTEI 0
Adilsond
18/10/2003
function TForm1.AptoEmUso: Boolean; begin with TQuery.Create(Self) do try DatabaseName := Table1.DatabaseName; SessionName := Table1.SessionName; SQL.Clear; SQL.Add(´select count(*)´); SQL.Add(´from minhatabela´); SQL.Add(´where apto = ´ + Table1Apto.AsString); SQL.Add(´ and dataent >= :dataent´); SQL.Add(´ and datasai <= :dataent´); ParamByName(´dataent´).AsDateTime := Table1DataEnt.AsDateTime; Open; try Result := Fields[0].AsInteger > 0; finally Close; end; finally Free; end; end; procedure TForm1.Table1BeforePost(DataSet: TDataSet); begin if AptoEmUso then raise EDatabaseError.Create(´Apto esta em uso nesta data.´); end;
GOSTEI 0