[firebase-br] SP travando

Eduardo Pelizzari de Andrade eduardoandrade em persoft.com.br
Ter Set 23 10:41:30 -03 2008


mas continua com problema, inserindo os parentes e usando o 'now'?

Se continuar com problema, depure ele da seguinte forma, crie uma 
tabela, com os campos que estão sendo comparados e faça um insert a cada 
loop. Adicione um contador e coloque ele no teste do while de forma a 
garantir a saída do loop e analise o resultado da tabela.

Eduardo Pelizzari de Andrade
Persoft Softwares Aplicativos




Kelver Merlotti escreveu:
> boa Edu.. pelos testes que fiz, não houve problemas até então em usar
> o 24/60/60, até porque são os mesmos operadores e possuem a mesma
> precedência. De qualquer forma, é sempre bom evitar surpresas..
> adotarei a técnica dos parenteses..
> obrigado e até mais!!
>
> 2008/9/23 Eduardo Pelizzari de Andrade <eduardoandrade em persoft.com.br>:
>   
>> kelver, Eu não tenho certeza como será calculado 1/24/60/60, se ele fará
>> o calculo da esquerda para direita ou da direita para a esquerda, isto
>> faria diferença, experimente usar 1 / (24*360) e como sugerio o magno
>> tente cast('now' as timestamp) no lugar de current_timestamp.
>>
>> Eduardo Pelizzari de Andrade
>> Persoft Softwares Aplicativos
>>
>>
>>
>>
>> Kelver Merlotti escreveu:
>>     
>>> captei.. valew!!
>>> to trabalhando numa solução aqui e assim que terminar compartilho com a galera..
>>> abraços!
>>>
>>> 2008/9/23 Adriano dos Santos Fernandes <adrianosf em uol.com.br>:
>>>
>>>       
>>>> 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
>>>>
>>>>
>>>> ______________________________________________
>>>> 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
>>>>
>>>>
>>>>         
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - http://www.avg.com
>>> Version: 8.0.169 / Virus Database: 270.7.1/1686 - Release Date: 23/09/2008 07:38
>>>
>>>
>>>       
>> ______________________________________________
>> 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
>>
>>     
>
>
>
>   
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - http://www.avg.com 
> Version: 8.0.169 / Virus Database: 270.7.1/1686 - Release Date: 23/09/2008 07:38
>
>   




Mais detalhes sobre a lista de discussão lista