Re: [firebase-br] É possível macro substituição em SP?

Andrei Luís compuvale.software em gmail.com
Qui Maio 18 13:45:36 -03 2006


Surgiu uma nova situação:

Parte da SP:

x = 1;
  while (x < 11)  do
     begin
        wSQL = 'Insert into Financeiro
                   Values(0, :wcliente_id, current_date,
                          :wdataVen' || Cast(x as Varchar(2)) || ',
                          :wfatura' || Cast(x as Varchar(2)) || ')';
         Execute Statement wSQL;
           x = x+1;
     end


Até aí OK.

Só que preciso testar se wFaturaX é nulo, e caso contrário não executar o
Execute Statement, aí estou tentando:

  if ((:wFatura || Cast(x as VarChar(2)) > 0) then Execute Statement wSQL

Mas ao compilar a SP acusa erro de que não encontrou a variavel wFatura.

Pensei em fazer algo do tipo

if (x=1) and (wFatura1>0) then Execute Statement wSQL;
if (x=2) and (wFatura2>0) then Execute Statement wSQL;
if (x=3) and (wFatura3>0) then Execute Statement wSQL;
...
if (x=10) and (wFatura10>0) then Execute Statement wSQL;

Resolve, mas preciso de 10 linhas na SP para fazer assim, se alguem tiver
uma idéia para reduzir isso, agradeço.

[]
Andrei


2006/5/17, Andrei Luís <compuvale.software em gmail.com>:
>
>  Grato pela dica Rubem, pelos testes que fiz montando um sql com Select
> funcionou blz. Agora vou montar a estrutura dos inserts que preciso.
>
> []
> Andrei
>
>
> Em 17/05/06, Rubem Nascimento da Rocha <djpardalrocha em hotmail.com>
> escreveu:
>
> > Se vc usa o FB 1.5, pesquisa sobre o comando EXECUTE STATEMENT. Ele pode
> > ser
> > o que vc precisa.
> > Sds.
> >
> >
> > >From: "Andrei Luís" <compuvale.software em gmail.com>
> > >Reply-To: FireBase <lista em firebase.com.br >
> > >To: Firebase <lista em firebase.com.br>
> > >Subject: [firebase-br] É possível macro substituição em SP?
> > >Date: Wed, 17 May 2006 15:54:54 -0300
> > >
> > >Boa tarde tenho a seguinte SP:
> > >
> > >Select fatura1, fatura2, fatura3,... fatura10,
> > >            dataven1, dataven2, dataven3,... dataven10
> > >    from pedidos
> > >into :wfatura1, :wfatura2, :wfatura3... :wfatura10,
> > >       :wdataven1, :wdataven2, :wdataven3,... :wdataven10
> > >
> > >Preciso fazer uma compração e insert into na tabela financeiro
> > dependendo
> > >do
> > >resultado da comparação para cada variável wFatura*, pensei em fazer
> > macro
> > >substituição tipo:
> > >
> > >x=1
> > >while x<>11 do
> > >    begin
> > >       if :wFaturaX >0 then
> > >         Insert into Financeiro Values(:wfaturaX, :wdatavenX);
> > >       x = x+1;
> > >    end
> > >
> > >É possível fazer isso com FB? Ou se alguem teria uma dica de como
> > otimizar
> > >essa rotina..
> > >
> > >
> > >[]s
> > >Andrei
> > >
> > >FB 1.5.2
>
>



Mais detalhes sobre a lista de discussão lista