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