[firebase-br] Deveria retornar NULL mas não

Carlos H. Cantu listas em warmboot.com.br
Seg Jan 21 14:59:25 -03 2013


Pelos testes que fiz, a variável realmente não seria afetada se vc 
estiver usando "group by" no select, caso contrário, ela deveria ficar null.

Ou então tem alguma outra situação que não ficou explicitada no exemplo
do seu email.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

MR> Boas tardes,
MR>  
MR> Desculpem todos,  mas talvez não me haja explicado da melhor
MR> forma, pelo que, em primeiro lugar gostaria de voltar a frisar que
MR> estou num ciclo lendo um cursor. O problema tem a ver com o facto
MR> de, estando o ficheiro TMP vazio, as variáveis para as quais
MR> carrego Sum(Valor) ou Sum(COALESCE(Valor,0)  "Into :WValor" não
MR> serem reafectadas, ou seja, manterem o último valor carregado numa
MR> leitura com registos no TMP, daí que, tanto faz usar a função COALESCE como não.
MR>   
MR> Na chamada ao comando Selct Sum(...) Into :WValor, esta variável
MR> que vinha com 20 como total da última soma não se altera,
MR> mantem-se com 20 apesar de não haver qualquer registo para somar,
MR> mas se a variável for do tipo Char(1) e estiver carregada com "E" da leitura do ciclo anterior,
MR> mantem o "E" em vez de retornar brancos ou nulo.
MR>  
MR> Não sei, mas arrisco. Parece que no comando do Select - à entrada
MR> - se analisa se o ficheiro está vazio, e em caso afirmativo,
MR> sai-se logo sem sequer reinicializar as variaveis, porque,  de
MR> contrário, havendo pelo menos um registo, as variáveis são
MR> reafectadas e tudo funciona de acordo com a lógica.
MR>   
MR> De onde se conclui pela obrigatoriedade de, dentro de um ciclo,
MR> ser obrigatório reinicializar sempre as variaveis de carregamento em tais circunstâncias.
MR>  
MR> Mário Reis 





Mais detalhes sobre a lista de discussão lista