PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Erro SQL: An error was found in the application program input parameters for the SQL statement. #473992

25/03/2014

0

Galera,
estou tentando criar minha Trigger mas está dando o seguinte erro:
An error was found in the application program input parameters for the SQL statement.

segue abaixo minha estrutura

Minha Trigger

CREATE OR ALTER TRIGGER TR_ATUALIZA_SALDO FOR ITEM_VENDA
ACTIVE AFTER INSERT OR UPDATE POSITION 0
as begin

SP_SELECIONA_LOTE ( new.id_produto, NEW.no_lote );

IF (INSERTING) THEN
BEGIN

if (new.tipo='1') then
UPDATE lote SET QTDE_DISP = (QTDE_DISP - NEW.qtde) WHERE id_produto = new.id_produto and no_lote = NEW.no_lote;
else
UPDATE lote SET QTDE_DISP = (QTDE_DISP + NEW.qtde) WHERE id_produto = new.id_produto and no_lote = NEW.no_lote;
END

IF (updating) THEN
BEGIN
if (new.tipo='1') then
UPDATE LOTE SET QTDE_DISP = (QTDE_DISP + OLD.QTDE - NEW.QTDE) WHERE id_produto = new.id_produto and no_lote = NEW.no_lote;
else
UPDATE LOTE SET QTDE_DISP = (QTDE_DISP + NEW.QTDE - OLD.QTDE ) WHERE id_produto = new.id_produto and no_lote = NEW.no_lote;


END



Minha Procedure

create or alter procedure SP_SELECIONA_LOTE (
PID_PRODUTO integer,
PNO_LOTE varchar(5))
returns (
RID integer)
as
BEGIN
for
SELECT COUNT(*) FROM LOTE WHERE (Lote.id_produto = :pID_PRODUTO ) AND (Lote.no_lote = :pNO_LOTE )
INTO :rID
do
begin
IF ( RID <= 0) THEN
INSERT INTO LOTE (ID_PRODUTO, NO_LOTE, QTDE_DISP) VALUES (:pID_PRODUTO,:pNO_LOTE,0);


suspend;
end


END

minha tabela de itens de venda

CREATE TABLE ITEM_VENDA (
ID INTEGER NOT NULL,
ID_VENDA INTEGER,
ID_PRODUTO INTEGER,
NO_LOTE VARCHAR(5),
VALOR NUMERIC(15,2),
QTDE INTEGER,
TIPO CHAR(1)
);

minha tabela de Lote

CREATE TABLE LOTE (
ID INTEGER NOT NULL,
NO_LOTE VARCHAR(5),
QTDE_DISP INTEGER,
ID_PRODUTO INTEGER
);
Bruno Figueira

Bruno Figueira

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar