[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