trabalhando com comparação de horas
22/01/2013
0
Estou com um date do oracle que guarda horas em uma agenda,,coloquei um datetime para que possa fazer a inclusao dos horários agendados,,minha dúvida é fazer comparações se já existe horario agendado ao sair da hora..fiz um locate no on exit
procedure TFDadosAgenda.DTPHoraInicialExit(Sender: TObject);
begin
if FViewAgenda.CDSAgendix.Locate(''HORARIOINICIALAGENDA'',DTPHoraInicial.Time,[]) then
begin
ShowMessage(''Horário já agendado'');
end;
end;
mas dá um erro could not parce sql timestamp string
Evandro Viana
Posts
23/01/2013
Joel Rodrigues
23/01/2013
Evandro Viana
nao dá com locate .....
tentei fazer o seguinte
procedure TFDadosAgenda.DTPHoraInicialExit(Sender: TObject);
var tempo01, tempo02 :TDateTime;
begin
tempo01 := FViewAgenda.CDSAgendix.FieldByName('HORARIOINICIALAGENDA').AsDateTime;
tempo02 := DTPHoraInicial.Time;
if TimeToStr(tempo01) = TimeToStr(tempo02)then
begin
ShowMessage(''Horário já agendado'');
end;
end;
Obs: Só consegue pegar o primeiro valor,,ele nao varre todos os valores...como eu posso ajeitar?
23/01/2013
Evandro Viana
nao dá com locate .....
tentei fazer o seguinte
procedure TFDadosAgenda.DTPHoraInicialExit(Sender: TObject);
var tempo01, tempo02 :TDateTime;
begin
tempo01 := FViewAgenda.CDSAgendix.FieldByName('HORARIOINICIALAGENDA').AsDateTime;
tempo02 := DTPHoraInicial.Time;
if TimeToStr(tempo01) = TimeToStr(tempo02)then
begin
ShowMessage(''Horário já agendado'');
end;
end;
Obs: Só consegue pegar o primeiro valor,,ele nao varre todos os valores...como eu posso ajeitar?
Ele consegue somente fazer a comparação da primeira hora..as demais horas ele nao entra na condição
23/01/2013
Joel Rodrigues
FViewAgenda.CDSAgendix.First(); while not FViewAgenda.CDSAgendix.Eof do begin //fazer aqui FViewAgenda.CDSAgendix.Next(); end
23/01/2013
Evandro Viana
Desta forma ainda continua validando somente o primeiro valor,,porem com o loop (quantidade de vezes que ja tem horas registrada)informando a mensagem
23/01/2013
Evandro Viana
Desta forma ainda continua validando somente o primeiro valor,,porem com o loop (quantidade de vezes que ja tem horas registrada)informando a mensagem
a mensagem de horario ja agendado aparece proporcional a quantidade de horario ja agendado,..a validação ainda somente no primeiro horario..
23/01/2013
Evandro Viana
Desta forma ainda continua validando somente o primeiro valor,,porem com o loop (quantidade de vezes que ja tem horas registrada)informando a mensagem
a mensagem de horario ja agendado aparece proporcional a quantidade de horario ja agendado,..a validação ainda somente no primeiro horario..
procedure TFDadosAgenda.DTPHoraInicialExit(Sender: TObject);
var tempo01, tempo02 :TDateTime;
begin
tempo01 := FViewAgenda.CDSAgendix.FieldByName('HORARIOINICIALAGENDA').AsDateTime;
tempo02 := DTPHoraInicial.Time;
FViewAgenda.CDSAgendix.First();
while not FViewAgenda.CDSAgendix.Eof do
Begin
if TimeToStr(tempo01) = TimeToStr(tempo02)then
begin
ShowMessage(''Horário já agendado'');
break;
end;
FViewAgenda.CDSAgendix.Next();
end;
Só que no primeira informação so e valido o primeiro,,se eu for ve o segundo vez so valida a ultima
23/01/2013
Joel Rodrigues
tempo01 := FViewAgenda.CDSAgendix.FieldByName('HORARIOINICIALAGENDA').AsDateTime; tempo02 := DTPHoraInicial.Time;
23/01/2013
Evandro Viana
tempo01 := FViewAgenda.CDSAgendix.FieldByName('HORARIOINICIALAGENDA').AsDateTime; tempo02 := DTPHoraInicial.Time;
vou testar...
24/01/2013
Joel Rodrigues
Bacana, fico feliz em ter ajudado.
Um abraço e boa sorte em seus projetos.
Nesse caso, estou encerrando o tópico.
24/01/2013
Evandro Viana
Bacana, fico feliz em ter ajudado.
Um abraço e boa sorte em seus projetos.
Nesse caso, estou encerrando o tópico.
Deu certo sim,,obrigado por ter me ajudado...
Fico Feliz por ter pessoas iguais a vc ..
Clique aqui para fazer login e interagir na Comunidade :)