RES: [firebase-br] SQL Dinâmico

Rubem Rocha rrocha em fpf.br
Sáb Mar 19 09:26:14 -03 2005


Tem que se ter em mente que quando fores montar um SQL dinâmico pra executar com o EXECUTE STATEMENT, qualquer concatenação de valores que vc for fazer na variável SQL tem que ser convertido pra string. Eu vi logo de cara que vc tá querendo concatenar valores data com a string. Isso vai dar erro mesmo!

[]s

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em nome de Henrique Sinapse
Enviada em: sexta-feira, 18 de março de 2005 17:38
Para: FireBase
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

-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.7.3 - Release Date: 15/03/2005
 

-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.7.3 - Release Date: 15/03/2005
 




Mais detalhes sobre a lista de discussão lista