[firebase-br] SP travando
Kelver Merlotti
kmerlotti em gmail.com
Seg Set 22 16:32:07 -03 2008
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;
SUSPEND;
end
Não se assuste com o tipo "DATE" para o parâmetro ENDTIME e pra var.
TMP, pois nesse banco usa-se o dialeto 1 ainda, conseqüentemente, já
vêem com a hora junto..
Alguma luz? Se não, vou tentar partir pra UDF mesmo..
Abraços!
2008/9/22 Magno System <magno em speet.com.br>:
> Eu se fosse você pegaria o VALOR do CURRENT_TIMESTAMP inteiro, adicionaria
> os segundos desejados e faria o loop com o current_timestamp completo, não
> só os segundos.
>
>
> ----- Original Message -----
> From: "Kelver Merlotti" <kmerlotti em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Monday, September 22, 2008 3:52 PM
> Subject: Re: [firebase-br] SP travando
>
>
> boa Magno.. meu while:
>
> WHILE (ENDTIME < TMP) DO
> ENDTIME = EXTRACT(SECOND FROM CURRENT_TIMESTAMP);
>
> nunca vai fazer com que o ENDTIME fique maior que o TMP se ela for
> chamada no final de um minuto..
>
> vou fazer uns testes aqui..
> Abraços!
>
> 2008/9/22 Magno System <magno em speet.com.br>:
>> Vou dar um chute. Se você der um sleep(5000) às 12:45:57, como você extrai
>> somente os segundos, ele vai extrair o 57 e somar com 5 que resultará em
>> 62.
>> Desta forma, você caíra num loop infinito, pois você só consegue extrair
>> entre 0 e 59 segundos.
>>
>> Como você extrai só o segundo
>> ----- Original Message -----
>> From: "Kelver Merlotti" <kmerlotti em gmail.com>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Monday, September 22, 2008 3:20 PM
>> Subject: [firebase-br] SP travando
>>
>>
>> Fala galera, boa tarde!
>>
>> Procurei na net e não achei nenhuma SP pra executar um "sleep" no
>> banco (tipo o do delphi mesmo)..
>>
>> Daí resolvi montar minha própria procedure Sleep.. MAS, há algo de
>> errado no paraíso.. se depuro ela pelo IBExpert, funfa normalz.. mas
>> quando dou o "select * from myslee(2000)" o FB vai a 100% de uso da
>> sua CPU e nunca mais retorna!!
>>
>> Alguém tem alguma idéia? Segue abaixo o código da SP:
>>
>> ALTER PROCEDURE MYSLEEP (
>> ms integer)
>> returns (
>> endtime numeric(6,3))
>> as
>> declare variable tmp numeric(6,3);
>> begin
>> SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP)
>> FROM RDB$DATABASE INTO :TMP;
>>
>> ENDTIME = TMP;
>> TMP = TMP + (MS / 1000);
>>
>> WHILE (ENDTIME < TMP) DO
>> SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP)
>> FROM RDB$DATABASE INTO :ENDTIME;
>>
>> SUSPEND;
>> end
>>
>> Desde já, obrigado e abraço!!
>>
>> --
>> Kelver Merlotti
>> Coordenador Editorial do Portal www.ActiveDelphi.com.br
>> Contato: kelver em activedelphi.com.br
>> Google: kmerlotti em gmail.com
>> Msn: kmerlotti em hotmail.com
>> Tem 1 minutinho? Então dá uma olhadinha nisso:
>> Um site de publicidades, de Portugal, está pagando em euros (quase 3x
>> mais que em reais) pra quem estiver disposto a:
>> * Ler anúncios
>> * Visitar sites
>> * Clicar em banners
>> * Navegar na NET
>> * Ler e-mails
>> * Convidar novos usuários
>> O pagamento é feito em cheque! Registra lá!! Não custa nada! ;-)
>> http://www.publipt.com/pages/index.php?refid=kmerlotti
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>
>
> --
> Kelver Merlotti
> Coordenador Editorial do Portal www.ActiveDelphi.com.br
> Contato: kelver em activedelphi.com.br
> Google: kmerlotti em gmail.com
> Msn: kmerlotti em hotmail.com
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
Kelver Merlotti
Coordenador Editorial do Portal www.ActiveDelphi.com.br
Contato: kelver em activedelphi.com.br
Google: kmerlotti em gmail.com
Msn: kmerlotti em hotmail.com
Mais detalhes sobre a lista de discussão lista