[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