vc sabe que as datas em SQL são no formato (yyyy/MM/dd)? e que ficam entre aspas?
tipo: '2008/12/31' veja se tem algo a ver com isso! Jean Barreiros Programador/Web-Designer Delphi, C++, PHP, JavaScript FireBird/InterBase, MySql, SQLServer, PostGree, Oracle msn: [EMAIL PROTECTED] e-mail: [EMAIL PROTECTED] ----- Mensagem original ---- De: Darkzad <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br; [EMAIL PROTECTED] Enviadas: Terça-feira, 21 de Outubro de 2008 17:33:33 Assunto: [delphi-br] Problema com Store Procedure Olá Pessoal, A Procedure abaixo está dando o seguinte erro: Overflow occurred during data type conversion. conversion error from string "1968". At procedure 'DEVOLUCAO_DIR' . Acho que o problema é a :DTINI01 e a :DTINI02 Não sei o que mais fazer. Desde já agradeço CREATE OR ALTER PROCEDURE DEVOLUCAO_DIR ( dtini01 date, dtfim01 date, cod_ven integer, cod_pro integer, fabrica char(1), tp char(1), dtfim02 date, ano smallint) returns ( razao varchar(50), jan float, fev float, mar float, abr float, mai float, jun float, jul float, ago float, seb float, out float, nov float, dez float, janm float, fevm float, marm float, abrm float, totcompr float, totmedia float, totdevol float, percentu float) as declare variable vend integer; declare variable qtde float; declare variable mes smallint; declare variable codc integer; declare variable tipo varchar(15); declare variable codsql1 varchar(1030) ; declare variable codsql2 varchar(1030) ; begin CODSQL1 = 'Select TBCLIENTE.COD_ CLIENTE, Extract(Month From DTDOC) AS MES,SUM(QTDE) AS QTDE From TBNFISCAL, TBNFMOV,TBCLIENTE Where TBNFISCAL.NRLAN = TBNFMOV.NRLAN AND TBNFISCAL.DTDOC Between CAST('||:DTINI01| |' as DATE) AND CAST('||:DTFIM01| |' as DATE) AND TBNFISCAL.TDOC = ''ANL'''; if (COD_VEN > 0) then CODSQL1 = CODSQL1 ||' AND TBCLIENTE.COD_ VEND = CAST('|| :COD_VEN ||' as integer) AND TBNFISCAL.COD_ CLIENTE = TBCLIENTE.COD_ CLIENTE'; else CODSQL1 = CODSQL1 ||' AND TBNFISCAL..COD_ CLIENTE = TBCLIENTE.COD_ CLIENTE'; if (COD_PRO > 0) then CODSQL1 = CODSQL1 ||' TBNFMOV.COD_ PRO = CAST('|| :COD_PRO ||' as integer)'; CODSQL1 = CODSQL1 ||' Group By TBCLIENTE.COD_ CLIENTE,2 Order By TBCLIENTE.COD_ CLIENTE,2' ; FOR EXECUTE STATEMENT CODSQL1 Into :VEND, :MES, :QTDE Do begin if (MES = 1) then begin JAN = QTDE; Select Sum(QTDE) /12 From TBNFISCAL,TBNFMOV, TBPRODUTO Where TBNFISCAL.NRLAN = TBNFMOV.NRLAN AND TBPRODUTO.COD_ PRO = TBNFMOV.COD_ PRO AND Extract(Month from DTDOC) >= 1 AND DTDOC <= :DTFIM02 AND Extract(YEAR from DTDOC) = :ANO AND TBNFISCAL.TDOC = 'VEN' AND TBPRODUTO.TPROD = 'BATERIA' into :JANM; end else if (MES = 2) then begin FEV = QTDE; Select Sum(QTDE) /12 From TBNFISCAL,TBNFMOV, TBPRODUTO Where TBNFISCAL.NRLAN = TBNFMOV.NRLAN AND TBPRODUTO.COD_ PRO = TBNFMOV.COD_ PRO AND Extract(Month from DTDOC) >= 2 AND DTDOC <= :DTFIM02 AND Extract(YEAR from DTDOC) = :ANO and TBNFISCAL.TDOC = 'VEN' AND TBPRODUTO.TPROD = 'BATERIA' into :FEVM; end else if (MES = 3) then begin MAR = QTDE; Select Sum(QTDE) /12 From TBNFISCAL,TBNFMOV, TBPRODUTO Where TBNFISCAL.NRLAN = TBNFMOV.NRLAN AND TBPRODUTO.COD_ PRO = TBNFMOV..COD_ PRO AND Extract(Month from DTDOC) >= 3 AND DTDOC <= :DTFIM02 AND Extract(YEAR from DTDOC) = :ANO and TBNFISCAL.TDOC = 'VEN' AND TBPRODUTO.TPROD = 'BATERIA' into :MARM; end else if (MES = 4) then begin ABR = QTDE; Select Sum(QTDE) /12 From TBNFISCAL,TBNFMOV, TBPRODUTO Where TBNFISCAL.NRLAN = TBNFMOV.NRLAN AND TBPRODUTO.COD_ PRO = TBNFMOV.COD_ PRO AND Extract(Month from DTDOC) >= 4 AND DTDOC <= :DTFIM02 AND Extract(YEAR from DTDOC) = :ANO and TBNFISCAL.TDOC = 'VEN' AND TBPRODUTO.TPROD = 'BATERIA' into :ABRM; end else if (MES = 5) then begin MAI = QTDE; Select Sum(QTDE) /12 From TBNFISCAL,TBNFMOV, TBPRODUTO Where TBNFISCAL.NRLAN = TBNFMOV.NRLAN AND TBPRODUTO.COD_ PRO = TBNFMOV.COD_ PRO AND Extract(Month from DTDOC) >= 5 AND DTDOC <= :DTFIM02 AND Extract(YEAR from DTDOC) = :ANO and TBNFISCAL.TDOC = 'VEN' AND TBPRODUTO.TPROD = 'BATERIA' into :MAIM; end else if (MES = 6) then JUN = QTDE; else if (MES = 7) then JUL = QTDE; else if (MES = 8) then AGO = QTDE; else if (MES = 9) then SEB = QTDE; else if (MES = 10) then OUT = QTDE; else if (MES = 11) then NOV = QTDE; else if (MES = 12) then DEZ = QTDE; end end^ SET TERM ; ^ [As partes desta mensagem que não continham texto foram removidas] Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]