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

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Sáb Fev 7 13:48:56 -03 2009


ja resolvi criei uma rotina no delphi mesmo, obrigado

2009/2/7 Reijanio Nunes Ribeiro <rnribeiro em gmail.com>

> bom é ai que to apanhando poderia me ajudar a montar essa sp pois é a
> primeira que uso no meu sistema, e não tenho ideia de como faze-la pois
> sempre da erro
>
> 2009/2/7 Carlos Magno P Souza <delphimagno em uol.com.br>
>
> Isto vai importar apenas 1 registro. Você deve executar esta procedure para
>> cada registro da tabela STIHL. O While deve estar no aplicativo que chama a
>> procedure.
>>
>> 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; */
>>
>>  INSERT INTO PRODUTO (CODIGO, DESCRICAO, VLRVENDA)
>>  VALUES (:CODIGO, :DESCRICAO,:VLR_VENDA)
>> /* OU ENTÃO
>>  INSERT INTO PRODUTO (CODIGO, DESCRICAO, VLRVENDA)
>>  SELECT CODIGO, DESCRICAO, VLRVENDA
>>  FROM STIHL
>>  WHERE CODIGO = :CODIGO
>> */
>>
>> Outra saída é fazer um loop dentro da procedure
>>
>> FOR SELECT CODIGO, DESCRICAO, VLRVENDA  FROM STIHL
>>        INTO :CODIGO, :DESCRICAO, :VLRVENDA
>>        DO BEGIN
>>        -- e o código anterior ficaria aqui dentro
>>
>>        END
>>
>> ----- Original Message ----- From: "Reijanio Nunes Ribeiro" <
>> rnribeiro em gmail.com>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Saturday, February 07, 2009 9:36 AM
>> Subject: [firebase-br] apanhando de stored_procedure alguem pode me
>> ajudar(2º tentativa)
>>
>>
>>
>> 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)
>>
>> );
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>



Mais detalhes sobre a lista de discussão lista