Sobre Execução de SP

Firebird

26/08/2005

Pessoal criei uma SP com a internção de ela me retornar a concatenação de todas as parcelas atrazadas de um determinado aluno, ex se o aluno9 tivesse as parcelas 2,3,7 atrazadas ela me retornaria apenas um campo contendo a string ´2 3 7´, mas não retora nada....

create procedure GetParcelasAtrasadasAluno(IdAluno Integer)
returns (ParcelasAtrasadas varchar(100))
as
declare variable Temporaria varchar(100);
begin
  for select Parcela from AlunosParcelas
  where (Current_Date > Vencimento)
  and IdAluno = :IdAluno and Pago = 0
  into :Temporaria
  do
    ParcelasAtrasadas = :ParcelasAtrasadas || ´ ´ || :Temporaria;
  suspend;
end;


só mais uma coisa... existe algum tipo de depuração de SP... como [b:069d6c090c]breackpoint´s e wath[/b:069d6c090c] :?:


Bruno Belchior

Bruno Belchior

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

26/08/2005

Se qualquer uma das variáveis concatenadas for NULL toda a expressão ficará NULL tb, faça assim para evitar o problema (deduzo que esteja usando FB 1.5):

create procedure GetParcelasAtrasadasAluno(IdAluno Integer) 
returns (ParcelasAtrasadas varchar(100)) 
as 
declare variable Temporaria varchar(100); 
begin 
  for select Coalesce(Parcela, ´´) from AlunosParcelas 
  where (Current_Date > Vencimento) and IdAluno = :IdAluno 
  and Pago = 0 into :Temporaria 
  do 
    ParcelasAtrasadas = :ParcelasAtrasadas||´ ´||:Temporaria; 
  suspend; 
end;


Quanto à debugação, somente ferramentas comerciais possuem isso (como a versão comercial do IbExpert), embora exista uma UDF gratuita para ajudar a debugar SPs e triggers.


GOSTEI 0
Bruno Belchior

Bruno Belchior

26/08/2005

nossa me entereço e muito nessa [b:42af2a72b5]UDF[/b:42af2a72b5], se puder me passar o link e talvez um tutorial de como utilizá-la... a propósito a função [b:42af2a72b5]Coalescente[/b:42af2a72b5] atribui um valor a variável no caso de [b:42af2a72b5]Null[/b:42af2a72b5]?


GOSTEI 0
POSTAR