[firebase-br] SQL Dinâmico

Eliomar eliomar em promediconet.com.br
Sáb Mar 19 08:51:24 -03 2005


Quando vc passa o CODMAT como null
a SP dá certo?

E lá no delphi como vc esta passando os
parametros?

Tem que passar com o QuotedStr pois
se trata de uma Varchar.

Entendeu?

Agradecido.
Eliomar,
ICQ - 167715482
Soft-Data Softwares Administrativos
hptt://www.promediconet.com.br


------------- Segue mensagem original! -------------

De: "Henrique Sinapse" <suporte em sinapseinformatica.com.br>
Data: Fri, 18 Mar 2005 18:38:10 -0300
Para: "FireBase" <lista em firebase.com.br>
Assunto: [firebase-br] SQL Dinâmico

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 
     

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br







Mais detalhes sobre a lista de discussão lista