Fórum Sts Procedure Verificar antes de Inserir Produto. #281270

11/05/2005

0

Pessoal estou desonvelndo sp. para adicionar um produto na falta + só vai adicionar quando ele nao estiver na mesma eu tentei assim + da este erro

Error Message:
----------------------------------------
Invalid token.
invalid request BLR at offset 280.

parameter mismatch for procedure ADICIONARFALTA.
Engracado que executando a procedure pelo Ib vai certinho é que disparo ela através de um gatilho !.

Outra questão é o seguinte preciso registrar tambem a data o dia então estou enviando assim ´now´ mas ai fica data e hora, não existe outra forma de ficar só a data

SET TERM ^ ;

CREATE PROCEDURE ADICIONARFALTA (
ICODIGO INTEGER,
SBARRAS VARCHAR(13),
SPRODUTO VARCHAR(40),
DQUANTIDADE DOUBLE PRECISION,
DCOMPRA DOUBLE PRECISION,
DVENDA DOUBLE PRECISION,
IMINIMO DOUBLE PRECISION,
SCAMPO1 VARCHAR(40),
SCAMPO2 VARCHAR(40),
SCAMPO3 VARCHAR(40),
SCAMPO4 VARCHAR(40),
DDATAPEDIDO DATE,
SSETOR VARCHAR(40),
SFORNECEDOR VARCHAR(40))
RETURNS (
RCODIGO INTEGER)
AS
begin
for select CODIGO
from TEMPRELATORIO
where (CODIGO = :ICODIGO)
into :RCODIGO
do
begin
suspend;
end
if (:Rcodigo is null)then
begin
insert into TempRelatorio
(CAMPO1, CAMPO2, CAMPO3, CAMPO4, CODIGO, CODIGO_BARRAS, DATAPEDIDO, FORNECEDOR,
MINIMO, PRECO_COMPRA, PRECO_VENDA, PRODUTO, QUANTIDADE, SETOR)
values
(:sCAMPO1, :sCAMPO2, :sCAMPO3, :sCAMPO4, :iCODIGO, :sBARRAS, :dDATAPEDIDO,
:sFORNECEDOR, :iMINIMO, :dCOMPRA, :dVENDA, :sPRODUTO, :dQUANTIDADE,
:sSETOR);
end
end
^

SET TERM ; ^


Obrigado a tds !


Essistemas

Essistemas

Responder

Posts

12/05/2005

Gandalf.nho

Como vc executa sua SP na trigger? Para passar só a data use CURRENT_DATE.


Responder

Gostei + 0

12/05/2005

Essistemas

Executo deste forma vc acredita que mesmo com o current_Date ele
grava data e hora no banco .
Obrigado !! se vc puder me da uma força nesta rotina fico grato !!
AS
begin
if (New.controlfalta=´T´) then
begin
if (New.quantidade >=New.Minimo) then
Execute Procedure ApagarFalta(New.codigo);
if (New.quantidade< New.Minimo) then
begin
Execute Procedure adicionarfalta(New.codigo,New.codigo_barras,
New.produto,New.quantidade,New.preco_compra,New.preco_venda,
new.minimo,New.campo1,New.campo2,New.campo3,New.campo4,Current_Date,new.setor,
New.fornecedor) ;
end
end
end


Responder

Gostei + 0

12/05/2005

Essistemas

O current_date agora deu certinho valeu mesmo.
Só falta o outro abacaxi !!


Responder

Gostei + 0

13/05/2005

Gandalf.nho

Já vi qual é o seu problema. Sua SP tem um parâmetro de retorno e na hora de executá-la na trigger vc não colocou o código para receber o valor. Outra coisa, qual a finalidade do trecho abaixo, já que ele retorna o mesmo valor passado como parâmetro? Verificar a existência do código?

for select CODIGO from TEMPRELATORIO 
where (CODIGO = :ICODIGO) into :RCODIGO do 
begin 
suspend; 
end



Responder

Gostei + 0

14/05/2005

Essistemas

É o seguinte só consegui fazer funcionar fazendo assim,
era um exemplo que eu tinha aqui, como eu executaria este sp e ao mesmo tempo pegar o retorno dela ?


Responder

Gostei + 0

14/05/2005

Gandalf.nho

Para chamar um SP executável com retorno de valores em SP e triggers, faça assim:

EXECUTE PROCEDURE nome_procedure parâmetros_entrada RETURNING_VALUES parâmetros_saída;



Responder

Gostei + 0

15/05/2005

Essistemas

Puxa vc acredita que ainda estou enroladoo criei essa procedure a parte
p/ verificar a falta chamase verificar falta, mas com executo ela através do trigger e verifico se ela retornou null ou existe o produto lá
tipo assim
if verificarFalta(05) is nul Then
faça isto intendeu

for select CODIGO from TEMPRELATORIO
where (CODIGO = :ICODIGO) into :RCODIGO do
begin
suspend;
end
Obrigado !!!


Responder

Gostei + 0

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

Aceitar