[firebase-br] SQL Dinâmico

Henrique Sinapse suporte em sinapseinformatica.com.br
Sex Mar 18 18:38:10 -03 2005


Gente,

Estou com um problema que ao meu ver é bobo, mas não estou conseguindo resolver. 

Eu tenho que montar um procedure onde eu extraio o saldo de um material no estoque dentro de um determinado período. Só que eu queria que quando o parâmetro código do material não fosse informado, a procedure automaticamente trouxesse o saldo de todos os materiais. Mas quando eu execute a procedure dá o seguinte erro:

Ouverflow ocurred during data type conversion. Conversion erro from string "1996".

create procedure SP_SALDO_PRODUTO(
  CODMAT VARCHAR(12),
  DATA_INICIAL DATE,
  DATA_FINAL DATE)
returns (
  rCODMAT VARCHAR(12),
  rSALDO NUMERIC(10,2))
as
  declare variable vSQL VARCHAR(200);
  declare variable vTOTENTRADAS NUMERIC(10,2);
  declare variable vTOTSAIDAS NUMERIC(10,2);
begin
  vSQL='Select CODMAT,SUM(ENTRADA),SUM(SAIDA) From TB_ESTOQUE';
  vSQL=vSQL||' Where (DATA BETWEEN '||:DATA_INICIAL||' and '||:DATA_FINAL||')';
  if (Not CODMAT IS NULL) then
     vSQL=vSQL||'  and CODMAT='||:CODMAT;
  vSQL=vSQL||' Group By CODMAT';

  For Execute Statement :vSQL
  Into rCODMAT,vTOTENTRADAS,vTOTSAIDAS
  Do
  Begin
    rSALDO=vTOTENTRADAS-vTOTSAIDAS;
    suspend;
  End

end

Alguém poderia me ajuda?

      Carlos Henrique Meireles
      Suporte de Sistemas
      Tel.: 21 - 8115-1584 
     




Mais detalhes sobre a lista de discussão lista