Re: [firebase-br] Stored chamar Stored. Problema offset na compilação

Romulo Oliveira romulocpd em yahoo.com.br
Seg Jan 9 13:52:44 -03 2006


Eduardo,

Solucionei assim:

DECLARE VARIABLE PMOV INTEGER;



EXECUTE PROCEDURE SP_INCMOVESTOQUE (....BLA´BLÁBLÁ) RETURNING_VALUES :PMOV;

Funcinoou nahora.. vi isso no forum do clubedelphi.

Vlw kra!
Romulo

Eduardo Jedliczka (TeamFB) wrote:
> bom, então vamos lá...
> 
> Coloque o parâmetro de retorno na sua 1ª SP, e na chamada à ela, pela 2ª, 
> transforme a linha num For Select sp(blablabal) into uma_variavel_qualquer.
> 
> Sucesso,
> 
> =========================
> Eduardo Jedliczka
> Membro do TeamFB - FireBase
> Apucarana - Pr
> =========================
> 
> ----- Original Message ----- 
> From: "Romulo Oliveira" <romulocpd em yahoo.com.br>
> To: <lista em firebase.com.br>
> Sent: Monday, January 09, 2006 12:36 PM
> Subject: Re: [firebase-br] Stored chamar Stored. Problema offset na 
> compilação
> 
> 
> Eduardo,
> 
> Consegui resolver porém não foi da forma que eu quis.  Pelo que entendi
> a stored INCMOVESTOQUE retorna o código do lançamento.   Estou
> executando EXECUTE PROCEDURE porém sem "pegar" este valor de retorno,
> daí deu erro.  Eu fui na stored e retirei o parametro de retorno. Voalá!
> Funcionou perfeitamente!  Porémeu precisava do codigo sendo retornado em
> outros momentos.
> 
> Vlw
> 
> 
> Eduardo Jedliczka (TeamFB) wrote:
> 
>>Experimenta fazer um backup e restore do seu banco.
>>
>>Outra coisa, experimenta dar um cast nos campos Varchar na chamada da SP.
>>
>>Sucesso,
>>
>>=========================
>>Eduardo Jedliczka
>>Membro do TeamFB - FireBase
>>Apucarana - Pr
>>=========================
>>
>>----- Original Message ----- 
>>From: "Edvaldo (BOL)" <evgomes em bol.com.br>
>>To: "FireBase" <lista em firebase.com.br>
>>Sent: Monday, January 09, 2006 9:33 AM
>>Subject: Re: [firebase-br] Stored chamar Stored. Problema offset na
>>compilação
>>
>>
>>Você deve declarar seu parâmetro de retorno como return_values.
>>
>>----- Original Message ----- 
>>From: "Romulo Oliveira" <romulocpd em yahoo.com.br>
>>To: <lista em firebase.com.br>
>>Sent: Monday, January 09, 2006 8:39 AM
>>Subject: [firebase-br] Stored chamar Stored. Problema offset na compilação
>>
>>
>>Olá amigos,
>>
>>Tenho uma Stored que movimenta o estoque:
>>
>>CREATE PROCEDURE SP_INCMOVESTOQUE (
>>     PEMPRESA INTEGER,
>>     PEMPRESAORIGEM INTEGER,
>>     PPRODUTO INTEGER,
>>     PCOR INTEGER,
>>     PTAMANHO INTEGER,
>>     PDATALANC DATE,
>>     PTIPO CHAR(3),
>>     PDOCUMENTO VARCHAR(20),
>>     PHISTORICO VARCHAR(60),
>>     PQTDLANC NUMERIC(18,4))
>>RETURNS (
>>     PCODIGO INTEGER)
>>AS
>>DECLARE VARIABLE SALDOANTERIOR NUMERIC(18,4);
>>DECLARE VARIABLE SALDOATUAL NUMERIC(18,4);
>>BEGIN
>>
>>     PCODIGO = GEN_ID(SEQ_MOVESTOQUE,1);
>>
>>     SELECT ETQ_ATUAL FROM ESTOQUE
>>     WHERE ETQ_EMPRESA = :PEMPRESA AND
>>           ETQ_PRODUTO = :PPRODUTO AND
>>           ETQ_COR = :PCOR AND
>>           ETQ_TAMANHO = :PTAMANHO INTO :SALDOANTERIOR;
>>
>>     IF (PTIPO = 'CRE') THEN
>>         SALDOATUAL = SALDOANTERIOR + PQTDLANC;
>>     IF (PTIPO = 'DEB') THEN
>>         SALDOATUAL = SALDOANTERIOR - PQTDLANC;
>>
>>     INSERT INTO MOV_ESTOQUE
>>         (MES_CODIGO, MES_EMPRESA, MES_EMPRESAORIGEM, MES_PRODUTO, 
>>MES_COR,
>>          MES_TAMANHO, MES_DATALANC, MES_TIPO, MES_DOCUMENTO, 
>>MES_HISTORICO,
>>          MES_SALDOANTERIOR, MES_QTDLANC, MES_SALDOATUAL)
>>     VALUES
>>         (:PCODIGO, :PEMPRESA, :PEMPRESAORIGEM, :PPRODUTO, :PCOR,
>>          :PTAMANHO, :PDATALANC, :PTIPO, :PDOCUMENTO, :PHISTORICO,
>>          :SALDOANTERIOR, :PQTDLANC, :SALDOATUAL);
>>     SUSPEND;
>>
>>     UPDATE
>>         ESTOQUE
>>     SET
>>         ETQ_ATUAL = :SALDOATUAL
>>     WHERE
>>         ETQ_EMPRESA = :PEMPRESA AND
>>         ETQ_PRODUTO = :PPRODUTO AND
>>         ETQ_COR = :PCOR AND
>>         ETQ_TAMANHO = :PTAMANHO;
>>
>>END
>>
>>Esta Stored funciona perfeitamente! Se chamada direto.
>>
>>Agora tenho uma stored que inclui itens de uma requisição de produtos.
>>
>>Ela é assim:
>>
>>
>>CREATE PROCEDURE SP_INCREQUISICAO_ITENS (
>>     PREQUISICAO INTEGER,
>>     PEMPRESA INTEGER,
>>     PPRODUTO INTEGER,
>>     PCOR INTEGER,
>>     PTAMANHO INTEGER,
>>     PQTD NUMERIC(12,4),
>>     PVLRUNIT NUMERIC(12,4))
>>RETURNS (
>>     PCODIGO INTEGER)
>>AS
>>BEGIN
>>
>>     SELECT
>>         MAX(REI_ITEM)
>>     FROM
>>         REQUISICAO_ITENS
>>     WHERE
>>         REI_CODIGO = :PREQUISICAO AND
>>         REI_EMPRESA = :PEMPRESA
>>     INTO
>>         :PCODIGO;
>>
>>     IF (:PCODIGO IS NULL) THEN
>>         PCODIGO = 1;
>>     ELSE
>>         PCODIGO = PCODIGO + 1;
>>     SUSPEND;
>>
>>     INSERT INTO REQUISICAO_ITENS
>>         (REI_CODIGO, REI_EMPRESA, REI_ITEM, REI_PRODUTO, REI_COR,
>>          REI_TAMANHO, REI_QTD, REI_VLRUNIT)
>>     VALUES
>>         (:PREQUISICAO, :PEMPRESA, :PCODIGO, :PPRODUTO, :PCOR,
>>          :PTAMANHO, :PQTD, :PVLRUNIT);
>>
>>     EXECUTE PROCEDURE SP_INCMOVESTOQUE(:PEMPRESA, :PEMPRESA, :PPRODUTO,
>>:PCOR,
>>     :PTAMANHO,CURRENT_DATE, 'DEB', 'TESTE','TESTE',1);
>>
>>END
>>
>>Vejam que nela chamo o SP_INCMOVESTOQUE.   Os parametros estao todos
>>corretos, porém na hora da compilação se eu deixar a chamada ele dá o
>>seguinte erro:
>>
>>Invalid token.
>>invalid request BLR at offset 500.
>>parameter mismatch for procedure SP_INCMOVESTOQUE.
>>
>>O que pode ser?  Ele diz parametro inválido porém já verifiquei
>>exatamente todos os parametros.
>>
>>Vlw galera!!!
>>Romulo Oliveira





Mais detalhes sobre a lista de discussão lista