Insert com Loop?
Olá pessoal !
Alguém pode me ajudar nessa tarefa ?
Preciso fazer um loop inserindo informações em uma tabela,
Tenho três informações:
Hora Inicial, Hora Final e Duração
Preciso incluir registro em uma tabela incrementando a duração na hora inicial até chegar na hora final.
Tentei com While mais não deu certo, alguém pode me ajudar ?
Obrigada.
Alguém pode me ajudar nessa tarefa ?
Preciso fazer um loop inserindo informações em uma tabela,
Tenho três informações:
Hora Inicial, Hora Final e Duração
Preciso incluir registro em uma tabela incrementando a duração na hora inicial até chegar na hora final.
Tentei com While mais não deu certo, alguém pode me ajudar ?
Obrigada.
Renatacoimbra
Curtidas 0
Respostas
Rjun
06/10/2005
Por que não de certo com o WHILE? Poste o código para darmos uma olhada.
GOSTEI 0
Renatacoimbra
06/10/2005
O código que testei vou assim:
[quote]While iHora <> fHora do begin iHora := ihora + Duracao; //Inset end;
GOSTEI 0
Rjun
06/10/2005
Não faça comparaçoes simples de igualdade com tipos DateTime pois eles são fracionários. Utilize comparações com maior igual ou menor igual.
while iHora < fHora do iHora := ihora + Duracao;
GOSTEI 0
Renatacoimbra
06/10/2005
Mesmo assim não deu certo
while not i >= f do begin i := i + Duracao; // Insert // ApplyUpdates end;
GOSTEI 0
Rjun
06/10/2005
Que tipo são as variáveis i, f e Duracao? Sua aplicação entra no loop? Quais os valores iniciais de i e f? Que banco você esta usando?
GOSTEI 0
Renatacoimbra
06/10/2005
i = HoraInicial // Iniciada com 08:00 por exemplo f = HoraFinal // Iniciada com 18:00 por exemplo Duracao = é o intervalo de um registro para o outro nos meus insert, o Valor dele pode ser 20 minutos Eu Uso o banco Oracle.
GOSTEI 0
Siam
06/10/2005
Seus cpos i e f são TDatetime certo?
E o campo duracao ?
E o campo duracao ?
GOSTEI 0
Renatacoimbra
06/10/2005
Esses são os tipos:
[b:5083568bc7]i, f: TDateTime
Duracao: Inteiro[/b:5083568bc7]
[b:5083568bc7]i, f: TDateTime
Duracao: Inteiro[/b:5083568bc7]
GOSTEI 0
Siam
06/10/2005
Quando vc soma um inteiro a um TDate, vc está somando dias.
É isso mesmo que vc quer ?
É isso mesmo que vc quer ?
GOSTEI 0
Renatacoimbra
06/10/2005
siam, brigada pela atenção !
Olha só:
i e f são TDateTime, eu uso só a hora dessas variaveis.
Duracao é inteiro, nessa variavel eu coloco a quantidade de minutos a incrementar, veja o código:
Olha só:
i e f são TDateTime, eu uso só a hora dessas variaveis.
Duracao é inteiro, nessa variavel eu coloco a quantidade de minutos a incrementar, veja o código:
while not i >= f do begin i := IncMinute(i, Duracao); // IncMinute da Unt DateUtils // Insert // i e a hora atual e Duracao são min // a incrementar na hora end;
GOSTEI 0
Siam
06/10/2005
no While, o [b:8a56b4964a]not[/b:8a56b4964a] já é um dos operadores; então requer parenteses:
while not (i >= f) do begin
GOSTEI 0
Renatacoimbra
06/10/2005
Valeu Siam, brigada !
Brigada mesmo.
perdir umas duas horas só por causa do ( ... ) :oops:
Brigada mesmo.
GOSTEI 0
Siam
06/10/2005
De nada ! :D
GOSTEI 0