Re: [firebase-br] Stored chamar Stored. Problema offset na compilação
Eduardo Jedliczka (TeamFB)
jedyfb em gmail.com
Seg Jan 9 13:04:56 -03 2006
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
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista