[firebase-br] RES: ajuda com stored procedure

Anderson Miranda Barrozo andersonpaduarj em gmail.com
Dom Mar 22 08:29:22 -03 2009


Se eu entendi bem, vc quer ler a toda a tabela STIHL e atualizar a tabela
produto. Se for
isso ficaria mais ou menos assim. Um detalhe que vi na sua SP original foi
os parametros de entrada, pois como vc iria ler toda a tabela não precisaria
então criei as mesmas como variavel para ser usada junto select : into.


SET TERM ^ ;

CREATE OR ALTER PROCEDURE IMPORTAR (
)
as
   codigo integer,
   descricao varchar(200),
   vlrvenda double precision
begin
FOR SELECT CODIGO, DESCRICAO, PRECO_VENDA  FROM STIHL
      INTO :CODIGO, :DESCRICAO, :VLRVENDA      // Varre toda tabela STIHL
      DO BEGIN
 if (Exists(select * from PRODUTO where codigo =:codigo)) then
 begin
    update produto set
            vlrvenda = : vlrvenda,
            descricao =:descricao
    where (codigo = :codigo);
 end
 else
 begin
    insert into produto(
              codigo,
              descricao,
              vlrvenda)
    VALUES (
              :codigo,
              :descricao,
              :vlrvenda);
 END
 end

end^


2009/3/21 Sandro <sandro_rebelo em ibest.com.br>

> Mas se você esta passando já o código, a descrição e valor na procedure
> porque vc esta fazendo esse select?
>
> Se tirar esse select da procedure não funciona o jeito que vc quer?
>
> FOR SELECT CODIGO, DESCRICAO, PRECO_VENDA  FROM STIHL
>       INTO :CODIGO, :DESCRICAO, :vlrvenda //esseloop não ta resolvendo a
> questão
>
>
>
>
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> nome de Reijanio Nunes Ribeiro
> Enviada em: sábado, 21 de março de 2009 11:50
> Para: FireBase
> Assunto: [firebase-br] ajuda com stored procedure
>
> bom dia a todos estou com um pesqueno problema poderiam me ajudar, outro
> dia
> criei minha primeira sp, pra usar em um importador so que ela so importava
> se a tabela destino estivesse vazia e eu gostaria de inserir caso algum
> produto nov fosse inserido na tabela ou tivesse mudado de codigo então a
> fiz
> assim mais ta dando erro no loop que não ta varrendo a tabela toda e
> inserindo os itens que faltam poderiam me ajudar falta be,m pouco coisa e
> da
> forma que umcoelga tenteou fazer ficou meio complicado usando duas sp's,
> acredito que da forma que ta não seja tão complicado, mais to apanhando
>  a sintaxe é a seguinte
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE IMPORTAR (
>    codigo integer,
>    descricao varchar(200),
>    vlrvenda double precision)
> as
> begin
> FOR SELECT CODIGO, DESCRICAO, PRECO_VENDA  FROM STIHL
>       INTO :CODIGO, :DESCRICAO, :vlrvenda //esseloop não ta resolvendo a
> questão
>       DO BEGIN
>  if (Exists(select codigo from stihl where codigo =:codigo)) then
>  begin
>  update produto set vlrvenda = : vlrvenda,
>  descricao =:descricao
>
>   where (codigo = :codigo);
>     end
>    else
>      begin
>    insert into produto(codigo, descricao, vlrvenda) select codigo,
> descricao, preco_venda
>
>    from stihl;
>
>       END
> end
>
> end^
> ______________________________________________
> 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
>



-- 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AS Informática
Anderson Miranda Barrozo
(22) 8115-8761
MSN: andersonpaduarj em hotmail.com



Mais detalhes sobre a lista de discussão lista