[firebase-br] o que ha de errado com essa sp

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Seg Fev 9 16:51:58 -03 2009


SET TERM ^ ;

CREATE OR ALTER PROCEDURE IMPORTAR (
    codigo varchar(14),
    descricao varchar(200),
    preco_venda numeric(15,2),
    perc_ipi numeric(9,5),
    class_fiscal integer)
as
begin
  if(Exists(select codigo from stihl WHERE codigo =:codigo))then
  update produto set vlrvenda = :preco_venda
   where codigo = :codigo;
    else
    insert into produto(codigo, descricao, vlrvenda, ipi,class_fiscal )
select codigo, descricao, preco_venda, perc_ipi, class_fiscal
    from stihl;




  end^
SET TERM ; ^
-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
as vezes funciona as vezes não funciona as vezes de kara da esse erro aki
BCD OVERFLOW
as vezes não da erro nenhum simplesmente não funcion as vezes da violação de
chae primaria, é uma bagunça

ela é chamda dessa forma

evento on click do botão
with dm.sqlstoredproc1 do
begin
params[0].AsString:= dm.importarCODIGO.AsString;
params[1].AsString:= dm.importarDESCRICAO.AsString;
params[0].AsFMTBCD:= dm.importarPRECO_VENDA.AsBcd;//campo do tipo
numeric(15,2)//na outra tabela double precision
params[0].AsFMTBCD:= dm.importarPERC_IPI.AsBcd;//campo do tipo
numeric(9,2)//na outra tabela double precision
params[0].AsInteger:= dm.importarCLASS_FISCAL.AsInteger;
end;
provavelmente o erro ta dando nesse campo aki mais até opntem tava
funcionando sem problemas mais hoje ja ta dando erro alguem poderia me
ajudar essa é a primeira vez que trabalho com sp, sempre preferi trabalhar
com o front end mais diretamente no bd essa rotina é infinitamente mais
rápida

se puderem me ajudar ficarei grato



Mais detalhes sobre a lista de discussão lista