[firebase-br] stored procedures não estão funcionando

Sandro Souza escovadordebits em gmail.com
Ter Nov 24 15:27:17 -03 2009


Bom dia/tarde Reijânio.

Grande Reijânio, pelo que eu entendi, o parâmetro "IDPROD" da stored
procedure "ATLZ_PRECO" é o código do produto (VARCHAR(18)), mas você está
usando esse código de produto para pesquisar a tabela de preço pelo código
da mesma e não pelo código do produto, ou seja.

Onde estão:

1 - IF(EXISTS(SELECT * FROM PRECO_TABELA WHERE *CODIGO* = :IDPROD))THEN
......

2 - UPDATE PRECO_TABELA SET ..... WHERE (*CODIGO* = :IDPROD);

Deveriam ser:

1 - IF(EXISTS(SELECT * FROM PRECO_TABELA WHERE *IDPROD* = :IDPROD))THEN
......

2 - UPDATE PRECO_TABELA SET ..... WHERE (*IDPROD* = :IDPROD);

E da forma que estão, realmente nunca serão encontrados os produtos, pois
está comparando o código do produto (IDPROD) com o código da tabela de preço
(CODIGO).

Se eu não entendi nada e realmente estiver falando besteira, por favor me
corrija, mas eu acredito que tenha sido esse o "cabelo de sapo" que esteja
te atrapalhando.

Espero ter ajudado mais que atrapalhado. :D

2009/11/23 Reijanio Nunes Ribeiro <rnribeiro em gmail.com>

> els estão duplicando os itens qdo deveriam no loop verificar se o ocidog ja
> existe
>
> 2009/11/20 Rodrigo Cury <cury.fb em gmail.com>
>
> > nossa....
> > absolutamente impossível identificar o seu problema, através do texto
> > do seu email!!
> > só se analisar as SP.. mas o tempo não deixa no momento...
> >
> > Por isso é importante deixar claro no texto do email, qual é a dúvida,
> > ou o problema que está ocorrendo, ou qual o comportamente esperado das
> > instruções passadas... ou qualquer coisa assim...
> >
> >
> >
> >
> > 2009/10/27 Reijanio Nunes Ribeiro <rnribeiro em gmail.com>:
> >  > bom dia a todos estou com um pequeno problema em duas uma que são
> > > praticamente identica a outra qu funciona muito bem poderiam me ajudar:
> > >
> > >
> > > PROCEDURE QUE FUNCIONA
> > >
> > > SET TERM ^ ;
> > >
> > > CREATE PROCEDURE IMPORTAR (
> > >    codigo varchar(14),
> > >    descricao varchar(200),
> > >    vlrvenda double precision,
> > >    perc_ipi double precision,
> > >    class_fiscal integer)
> > > as
> > > begin
> > > for select codigo,  descricao,  preco_venda, perc_ipi, class_fiscal
> from
> > > stihl
> > > into :codigo, :descricao, :vlrvenda, :perc_ipi, :class_fiscal do
> > > begin
> > >  if(Exists(select * from produto WHERE codigo =:codigo))then
> > >  begin
> > >  update produto set vlrvenda = :vlrvenda,
> > > descricao =:descricao,
> > > ipi = :perc_ipi,
> > > class_fiscal =:class_fiscal
> > >   where (codigo = :codigo);
> > >   end
> > >    else
> > >    begin
> > >    insert into produto(codigo, descricao, ipi, class_fiscal, vlrvenda)
> > >    values
> > >    (
> > >    :codigo ,
> > >    :descricao,
> > >    :perc_ipi,
> > >    :class_fiscal,
> > >    :vlrvenda
> > >     );
> > >  end
> > > end
> > >  end^
> > >
> > > SET TERM ; ^
> > >
> > >
> > > PROCEDURE QUE NÃO FUNCIONA
> > >
> > > SET TERM ^ ;
> > >
> > > CREATE PROCEDURE ATLZ_PRECO (
> > >    idprod varchar(18),
> > >    vlr_venda double precision)
> > > as
> > > begin
> > > for select codigo, preco_venda from stihl
> > > into :idprod, :vlr_venda do
> > > begin
> > >  if(Exists(select * from preco_tabela WHERE codigo =:idprod))then
> > >  begin
> > >  update preco_tabela set vlr_venda = :vlr_venda
> > >   where (codigo = :idprod);
> > >   --tentativa
> > >   end
> > >    else
> > >    begin
> > >    insert into preco_tabela(idprod, vlr_venda)
> > >    values
> > >    (
> > >    :idprod,
> > >    :vlr_venda
> > >     );
> > >  end
> > >  end
> > >  end^
> > >
> > > SET TERM ;
> > >
> > > ESTRUTURA DA TABELA PRECO-TABELA
> > > CREATE GENERATOR GEN_PRECO_TABELA_ID;
> > >
> > > CREATE TABLE PRECO_TABELA (
> > >    CODIGO        INTEGER NOT NULL,
> > >    IDTAB         INTEGER,
> > >    IDPROD        VARCHAR(18),
> > >    VLR_VENDA     DOUBLE PRECISION,
> > >    VLR_MENOR     DOUBLE PRECISION,
> > >    VLR_MAIOR     DOUBLE PRECISION,
> > >    VLR_SUGESTAO  DOUBLE PRECISION,
> > >    DT_ATUALIZA   DATE,
> > >    COD_EMP       INTEGER,
> > >    CODBARR       VARCHAR(13)
> > > );
> > >
> > > ESTUTURA DA TABELA STIHL
> > >
> > > CREATE TABLE STIHL (
> > >    CODIGO         VARCHAR(14) NOT NULL,
> > >    DESCRICAO      VARCHAR(25),
> > >    DESC_COMPLEM   VARCHAR(29),
> > >    QTD_MIN        INTEGER,
> > >    PRECO_VENDA    DOUBLE PRECISION,
> > >    COD_PROC       INTEGER,
> > >    PERC_RED_ICMS  NUMERIC(2,0),
> > >    PERC_IPI       DOUBLE PRECISION,
> > >    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
> >
> ______________________________________________
> 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