[firebase-br] apanhando de stored_procedure alguem pode me ajudar(2º tentativa)
Reijanio Nunes Ribeiro
rnribeiro em gmail.com
Sáb Fev 7 11:48:12 -03 2009
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