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

Mário Reis mariodosreyx em gmail.com
Dom Jan 20 11:35:19 -03 2013


Boas,

Estou a usar o FB2.5+WIN7(+Delphi7), mas para o que me tras chega falar do 
FB2.5 segundo penso. É assim:

Numa "Store Procedure" estou a ler um ficheiro ordenado por TipoRegisto + 
NoSocio, através de um cursor (While !Eof) e dentro deste tenho um segundo 
While coluna "Socio"=Variavel "WSocio" e !Eof durante o qual analiso: 
Se coluna "StErro"='00'(S/Erro) carrego um ficheiro temporário senão actualizo 
o meu ficheiro de "Cobranças" assinalando apenas a coluna com o Status do erro
(de 01-a-30).

Porém, quando rebenta este 2.º ciclo(interno) faço 

bloco-1.
  WTotVlr=NULL;
  WStErro=NULL;

bloco-2.
 Select Sum(TmpCb.Vlr), TmpCb.StErro From TmpCb Into :WTotVlr, :WStErro,   
seguido de:
 
bloco-3.
   If (:WTotVlr>0) Then
    begin
      GeraRecibo...
      If (Sucesso) Then
       For Select TmpCb...
        begin
         UpDate Cobrancas Set...
            
        end 
    end /* WTotVlr>0 */

Ora, caso apanhe um único registo em Erro não chego a carregar qualquer 
registo no ficheiro Tmp. Então, ao executar o comando do bloco 2, pela lógica,
acreditava que a variaveis  :WTotVlr e :WStErro fossem afectadas com NULL, mas
não. 
Depois de alguma luta percebi que o bloco 1 é obrigatório, porque se o
ficheiro estiver vazio as variáveis não são reinicializadas.

A minha questão é saber se isto é só assim no FB2.5 porque tanto quando me 
recordo no MS-Sql Server e PostgreSql, nestes casos, as variáveis são sempre 
reafectadas.

Agradeço qualquer esclarecimento.

Obrigado

Mário





Mais detalhes sobre a lista de discussão lista