[firebase-br] apanhando de stored_procedure alguem pode me ajudar(2º tentativa)

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Sáb Fev 7 10:36:39 -03 2009


bom dia

Alguem poderia me ajudar com essa procedure:

A logica seria assim importei uma tabela em txt com aproximadamente 6600
itens então tentei usar essa procedure da seguinte forma depois de baixar o
txt pra tabela temporária, executar a procedure que varreria a tabela de
produto sprocurando itens se achasse daria o update nos precos dos itens,
caso não encontrasse então começaria a inserir os mesmos, mais ta dando erro
podereiam me ajudar,

Acho que ta faltando um while ai mais não sei como implementa-lo no firebird
e não quero ter que fazer isso no delphi se puderem me ajudar ficarei grato,
obrigado



SET TERM ^ ;



CREATE PROCEDURE IMPORTAR (

    codigo integer,

    descricao varchar(200),

    vlrvenda double precision)

as

begin

  if(Exists(select codigo from stihl where codigo = :codigo))then

  update produto set vlrvenda = : vlrvenda,

  descricao =:descricao

   where (codigo = :codigo);

    else

    insert into produto(codigo, descricao, vlrvenda) select codigo,
descricao, preco_venda

    from stihl;

  /*suspend;*/

/*end^*/

  end^

SET TERM ; ^

Estrutura das tabelas

 CREATE TABLE PRODUTO (

    CODIGO        VARCHAR(18) NOT NULL,

    DESCRICAO     VARCHAR(200),

    VLRVENDA      DOUBLE PRECISION,
    IPI           numerIC
   CLASSFISCAL    VARCHAR(14)
   //retirei os outros campos pq o email anterior ficou aguardando aprovação
pois era muito grande

CREATE TABLE STIHL (

    CODIGO         VARCHAR(14) NOT NULL,

    DESCRICAO      VARCHAR(25),

    DESC_COMPLEM   VARCHAR(29),

    QTD_MIN        INTEGER,

    PRECO_VENDA    NUMERIC(15,5),

    COD_PROC       INTEGER,

    PERC_RED_ICMS  NUMERIC(2,0),

    PERC_IPI       NUMERIC(9,5),

    CLASS_FISCAL   INTEGER,

    MODELO         VARCHAR(130),

    HIERARQ_PROD   VARCHAR(18),

    TERMINADOR     CHAR(1),

    ALIQ_ECF       NUMERIC(2,0)

);



Mais detalhes sobre a lista de discussão lista