[firebase-br] stored procedures não estão funcionando
Reijanio Nunes Ribeiro
rnribeiro em gmail.com
Ter Out 27 18:12:43 -03 2009
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)
);
Mais detalhes sobre a lista de discussão lista