[firebase-br] SP travando
Adriano dos Santos Fernandes
adrianosf em uol.com.br
Ter Set 23 08:11:40 -03 2008
Kelver Merlotti escreveu:
> Realmente Eduardo, da primeira forma não funcionaria, mas conforme
> postei novamente - já corrigido - ainda não funcionou:
>
> Magno.. fiz como o sugerido e infelizmente continua travando se
> executo ela via select.. o fb para de responder.. depurando ela roda
> normalex! já num select * from mysleep(10000) ela nunca mais retorna..
> Veja como ficou:
>
> CREATE PROCEDURE MYSLEEP (
> ms integer)
> returns (
> endtime date)
> as
> declare variable tmp date;
> begin
> ENDTIME = CURRENT_TIMESTAMP;
> TMP = ENDTIME + (MS / 1000) * (1/24/60/60);
> WHILE (ENDTIME < TMP) DO
> ENDTIME = CURRENT_TIMESTAMP;
De acordo com o padrão SQL, CURRENT_TIMESTAMP deve retornar o horário
que a procedure foi iniciada. E é por isso o loop infinito.
Achei que a constante TIMESTAMP 'NOW' resolveria o problema mas parece
que não. Acho que vc vai precisar de uma UDF que retorne a hora real atual.
Adriano
Mais detalhes sobre a lista de discussão lista