[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