Fórum Verificar horários de uma tabela #366694
03/12/2008
0
to com a seguinte situação...
preciso fazer uma verificação em um determinado Horario de uma data...
if dm.ibqLocaliza.Locate(´data´,aux,[]) then
begin
if dm.dbAgendamento.RecordCount > 0 then
bmPosicao := dm.dbAgendamento.GetBookmark;
dm.dbAgendamento.First;
while not dm.dbAgendamento.Eof do
begin
if dm.dbAgendamentoHORARIO.Text < fldHoraInicio.Text then
begin
ShowMessage(´MEnsagem´);
Break;
end;
dm.dbAgendamento.Next;
end;
if dm.dbAgendamento.RecordCount > 0 then
dm.dbAgendamento.GotoBookmark(bmPosicao);}
end;
para localizar a data beleza agora as validações que não acontece e nem sai do while ...
Phoito
Curtir tópico
+ 0Posts
04/12/2008
Facc
Gostei + 0
04/12/2008
Phoito
a linha next foi informada antes do end do while ...
devo informar em algum outro lugar?
hum esqueci de mensionar o dataset neste momento esta em append.
obrigado pela atenção [].
Gostei + 0
04/12/2008
Silveriosepulveda
Tente tirá-lo.
E caso não de certo, tente explicar melhor o que precisa.
Gostei + 0
04/12/2008
Wdrocha
Gostei + 0
05/12/2008
Phoito
estou montando um sistema que faz agendamentos e to precisando de uma
validação para o usuario não fazer conflito de agendamentos.
uso a data , hora inicio e hora termino
usei o seguinte raciocinio ... se alguma data da tabela for igual a data do novo registro a ser incerido
entaum
entra para fazer a validação de horario ...
se o horario inicial do novo registro for maior que o horario inicial da tabela
entra para ultima validação...
se o horario inicial do novo do registro for menor que o horario de termino da tabela entaum o sistema não pode permitir o agendamento.
so meio novo no delphi desculpa pela ignorancia hehehehe
agradeço pela ajuda de todos ....
Gostei + 0
05/12/2008
Martins
Tente mais ou menos assim:
if dm.ibqLocaliza.Locate(´data´,aux,[]) then begin if dm.dbAgendamento.RecordCount > 0 then bmPosicao := dm.dbAgendamento.GetBookmark; dm.dbAgendamento.First; while not dm.dbAgendamento.Eof do begin if dm.dbAgendamento. FieldByName(´HORARIO´).AsTime < StrToTime(fldHoraInicio.Text) then begin ShowMessage(´MEnsagem´); Break; end; dm.dbAgendamento.Next; end; if dm.dbAgendamento.RecordCount > 0 then dm.dbAgendamento.GotoBookmark(bmPosicao);} end;
Não testei mais fazendo esta conversão deve funcionar para usar esse operado ´<´.
Boa sorte.
Gostei + 0
05/12/2008
Phoito
vou postar a solução que encontrei
ao invez de tentar converter o texto em tempo converti o tempo em texto
criei um aux para todo loop do while receber o campo da tabela de tempo
convertendo para texto .. num como comparou texto com texto mas deu certo...
muito obrigado a todos....
while not dm.dbAgendamento.Eof do begin aux2 := TimeToStr (dm.dbAgendamentoHORARIO.AsDataTime); if aux2 < fldHoraInicio.Text then begin ShowMessage(´MEnsagem´); Break; end; dm.dbAgendamento.Next; end;
Gostei + 0
05/12/2008
Phoito
testando melhor nao deu certo nada que postei acima ....
realmente ainda estou com problemas de conversão...
:<
Gostei + 0
08/12/2008
Martins
Ainda vou insistir no código abaixo:
if dm.ibqLocaliza.Locate(´data´,aux,[]) then begin if dm.dbAgendamento.RecordCount > 0 then bmPosicao := dm.dbAgendamento.GetBookmark; dm.dbAgendamento.First; while not dm.dbAgendamento.Eof do begin if dm.dbAgendamento. FieldByName(´HORARIO´).AsDateTime < StrToTime(fldHoraInicio.Text) then begin ShowMessage(´MEnsagem´); end; dm.dbAgendamento.Next; end; if dm.dbAgendamento.RecordCount > 0 then dm.dbAgendamento.GotoBookmark(bmPosicao);} end;
Tente novamente com esse código.
Boa sorte e bons códigos.
Gostei + 0
09/12/2008
Phoito
cara agradeço pela ajuda .
entaum eu tentei este código tbm ... eles estão dando o seguinte erro
1500::00 tentando converter para 15:00
analisando bem descobri que o erro não é da conversão do horario do campo .text
e sim do primeiro registro de comparação do banco
exemplo eu invormo data 10/10/2008 e o horario 16:00 para um novo registro
ele pega um registro no banco 10/10/2008 14:00 o erro apresentado
vai ser de 1400::00
... tem alguma idéia do que seja ?
Gostei + 0
09/12/2008
Martins
Me passe o Banco para que eu e os demais colegas possamos tentar te ajudar.
Boa sorte e bons códigos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)