[firebase-br] Problema com Select em Procedure
Isael Faria Junior
isael em stetika.com.br
Sex Abr 11 09:48:35 -03 2008
Resolvi,
O Problema era a Data vinda do sistema que estava no padrão dd/mm/aaaa e no
firebird e mm/dd/aaaa diferente do oracle que e dd/mm/aaaa.
Valeu
----- Original Message -----
From: "Anderson Miranda Barrozo" <andersonpaduarj em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, April 11, 2008 9:40 AM
Subject: Re: [firebase-br] Problema com Select em Procedure
Grande,
Qual é a finalidade desta procedure ? Assim ficaria melhor para entender a
logica.
Anderson
Em 11/04/08, Isael Faria Junior <isael em stetika.com.br> escreveu:
>
> Pessoal,
>
> Tenho o seguinte procedure.
>
> ---
>
> CREATE PROCEDURE SPR_ORDEM_CPR_FORNECEDOR (
> COD_ORD_COM INTEGER,
> DATA_INICIAL DATE,
> DATA_FINAL DATE,
> ID_FORNECEDOR INTEGER,
> TIPO VARCHAR(1))
> AS
> DECLARE VARIABLE ID_PRODUTO INTEGER;
> DECLARE VARIABLE VAL_UNITARIO DOUBLE PRECISION;
> DECLARE VARIABLE PRODUTO VARCHAR(50);
> DECLARE VARIABLE CODIGO INTEGER;
> DECLARE VARIABLE CODENA VARCHAR(15);
> DECLARE VARIABLE ID_LOC_ESTQ INTEGER;
> DECLARE VARIABLE SALDO FLOAT;
> DECLARE VARIABLE VENDA FLOAT;
> DECLARE VARIABLE COMPRAS FLOAT;
> DECLARE VARIABLE ENTRADAS FLOAT;
> DECLARE VARIABLE FONTE_ODBC VARCHAR(30);
> DECLARE VARIABLE SAIDAS FLOAT;
> DECLARE VARIABLE ID_UNIDADE INTEGER;
> DECLARE VARIABLE QTDMIN FLOAT;
> DECLARE VARIABLE UNIDADE VARCHAR(3);
> DECLARE VARIABLE VALOR FLOAT;
> begin
> SELECT ID_LOC_CPR,FONTE_ODBC FROM PARAMETROS INTO
> :id_loc_estq,:fonte_odbc;
>
> FOR SELECT COD_PRODUTO FROM CAT_PRO_FOR WHERE COD_FORNECEDOR =
> :id_fornecedor
> INTO :id_produto DO
> BEGIN
>
> SELECT SUM(QTD_MOV) FROM MOVEST WHERE ID_PRODUTO = :id_produto AND
> DAT_MOV < :data_final AND ID_LOCAL_ENT = :id_loc_estq AND
> SUBSTR(SIT_TIPO_LANC,1,1) = 'E' INTO :entradas;
>
> if (:entradas IS NULL) then
> entradas = 0;
>
> SELECT SUM(QTD_MOV) FROM MOVEST WHERE ID_PRODUTO = :id_produto AND
> DAT_MOV < :data_final AND ID_LOCAL_SAI = :id_loc_estq AND
> SUBSTR(SIT_TIPO_LANC,1,1) = 'S' INTO :saidas;
>
> if (:saidas IS NULL) then
> SAIDAS = 0;
>
> SALDO = ENTRADAS - SAIDAS;
>
> IF (:tipo = 'N') THEN
> BEGIN
> select
> sum(qtd_item)
> from ite_pro_nota
> where id_tipo_operacao
> in (select id_tipo_operacao from tipo_operacao where sit_tip_op =
> 'V')
> and id_nota
> in (select id_nota from notas_fiscais where dat_emissao between
> :data_inicial and :data_final)
> AND ID_PRODUTO = :id_produto into :venda;
> END
> IF (:tipo = 'P') THEN
> BEGIN
> SELECT
> SUM(QTD_ITEM)
> FROM item_prod_ped
> WHERE ID_TIPO_OPERACAO
> IN (SELECT ID_TIPO_OPERACAO FROM tipo_operacao WHERE SIT_TIP_OP =
> 'V')
> AND ID_PEDIDO
> IN (SELECT ID_PEDIDO FROM PEDIDO WHERE DAT_EMISSAO between
> :data_inicial AND :data_final)
> AND ID_PRODUTO = :id_produto INTO :venda;
> END
>
> IF (:VENDA IS NULL) THEN
> BEGIN
> venda = 0;
> END
>
> if (:fonte_odbc = 'DUGS') then
> BEGIN
> SELECT PRCUSTO,DESCRICAO,CODBAR,QTDMIN,ID_UNIDADE FROM PRODUTOS WHERE
> ID_PRODUTO = :id_produto
> INTO :val_unitario,:produto,:codena,:qtdmin,:id_unidade;
> END
> ELSE
> BEGIN
> SELECT PRCUSTO,DESCRICAO,ID_PRODUTO,QTDMIN,ID_UNIDADE FROM PRODUTOS
> WHERE ID_PRODUTO = :id_produto
> INTO :val_unitario,:produto,:codena,:qtdmin,:id_unidade;
> END
>
> if (qtdmin IS NULL) then
> qtdmin = 0;
>
> COMPRAS = (:venda + :qtdmin) - :saldo;
>
> SELECT SIGLA FROM UNIDADE WHERE ID_UNIDADE = :id_unidade INTO :unidade;
>
> INSERT INTO
> ite_pro_oc(COD_ORD_OC,ID_PRODUTO,CODIGO,PRODUTO,SALDO,VAL_QTD_PRO,VAL_PRO_UNIT,
> VENDA,VAL_TOT_IPI,ID_UNIDADE,UNIDADE) VALUES
>
> (:cod_ord_com,:id_produto,:codena,:produto,:saldo,:compras,:val_unitario,:venda,
> 0,:id_unidade,:unidade);
> END
> /* Procedure Text */
> suspend;
> end;
>
> --
>
> Onde este Select deveria me trazer o valor 1
> SELECT
> SUM(QTD_ITEM)
> FROM item_prod_ped
> WHERE ID_TIPO_OPERACAO
> IN (SELECT ID_TIPO_OPERACAO FROM tipo_operacao WHERE SIT_TIP_OP =
> 'V')
> AND ID_PEDIDO
> IN (SELECT ID_PEDIDO FROM PEDIDO WHERE DAT_EMISSAO between
> :data_inicial AND :data_final)
> AND ID_PRODUTO = :id_produto INTO :venda;
>
> O engraçado que que quando rodo esse select no sql editor o mesmo me
> monstra o valor correto, porem ao executar a procedure me tras o valor
> null
>
> Detalhe não tenho como debug passo a passo pois a minha versão de IBExpert
> não permite isso.
>
> Alguem pode me ajudar a solucionar esse misterio ??
>
>
>
>
> Isael Faria Junior
> Rua José Paulino 320 SL 51
> Campinas / SP
> Stetika Informática LTDA
> Fone: 3203-0340 Cel:9198-6729
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AS Informática
Anderson Miranda Barrozo
(22) 8115-8761
MSN: andersonpaduarj em hotmail.com
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
__________ NOD32 3016 (20080410) Information __________
This message was checked by NOD32 antivirus system.
http://www.eset.com
Mais detalhes sobre a lista de discussão lista