[firebase-br] RES: Duvidas com procedures RESOLVIDO

Alexandre camilo em apollosistemas.com.br
Sex Maio 10 08:01:04 -03 2013


o erro era o seguinte:

This operation is not defined for system tables.
unsuccessful metadata update.
MODIFY RDB$PROCEDURES failed.

E realmente era a acentuação, mas pensei que por ser um comentário não
influenciaria.

Vlw

Obrigado a todos

Alexandre Camilo



-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Denis Rocha
Enviada em: quinta-feira, 9 de maio de 2013 13:52
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] Duvidas com procedures

Não sei se é isso, mas tenta tirar o acento de /* INSUMOS DE PRODUÇÃO */ 
coloca /* INSUMOS DE PRODUCAO */

Veja se vai. É que eu já tive problemas com acentuação




"Alexandre" <camilo em apollosistemas.com.br> 
escreveu na notícia da 
mensagem:003101ce4cbd$756c12f0$604438d0$@apollosistemas.com.br...
> Galera tenho este comando, que executa certinho no firebird 2.1 mas quando
> tento rodar ela no firebird 2.5 ela da erro,
> Se eu tiro a parte dos /* INSUMOS DE PRODUÇÃO */ , ela roda redondinha, so
> que não conseguir enxergar algo que possa ter mudado.
>
> Será que alguém tem alguma ideia??
>
>
> create or alter procedure PROC_ESTOQUEATUAL ( DIA date = current_date)
> returns (
>    PROD_CODAUT integer,
>    PROD_ID char(25),
>    PROD_DESCRI varchar(195),
>    PROD_MEDIDA varchar(30),
>    PROD_ESTATUAL double precision)
> as
> declare variable SAIDAS double precision;
> declare variable ENTRADAS double precision;
> declare variable ESTINICIAL double precision;
> declare variable SAIDASPRODUCAO double precision;
> declare variable PRODUZIDO double precision;
> declare variable DTESTINICIO date;
> declare variable QTDESTINICIO double precision;
> declare variable INIPERIODO DATE;
> BEGIN
>    FOR
>    SELECT PROD.PROD_CODAUT, PROD.PROD_ID, PROD_DESCRI, PROD_MEDIDA,
> EST.EST_DATA, EST.EST_QTD  FROM TAB_PRODUTOS PROD
>    LEFT JOIN TAB_ESTINICIAL EST ON PROD.PROD_CODAUT = EST.PROD_ID WHERE (
> (UPPER(PROD_TIPO) = 'P')) AND (PROD.PROD_STATUS = 1) INTO
>    PROD_CODAUT, PROD_ID, PROD_DESCRI, PROD_MEDIDA, DTESTINICIO,
> QTDESTINICIO DO
>    BEGIN
>        IF (DTESTINICIO >= DIA) then
>        BEGIN
>            SELECT
>                SUM(CASE NF.NF_TIPO WHEN 0 THEN COALESCE(NFI.ITEN_QTD,0)
> ELSE 0 END) SAIDAS,
>                SUM(CASE NF.NF_TIPO WHEN 1 THEN COALESCE(NFI.ITEN_QTD,0)
> ELSE 0 END) ENTRADAS
>            FROM TAB_PRODUTOS PROD LEFT JOIN
>                TAB_ITENSNF NFI LEFT JOIN TAB_NF NF ON NF.NF_ID =
> NFI.ITEN_NFID
>                ON NFI.ITEN_PRODID = PROD.PROD_ID
>            WHERE (NF.NF_DTEMISSAO < :DTESTINICIO) AND (NF.NF_DTEMISSAO >=
> :DIA) AND (PROD.PROD_CODAUT = :PROD_CODAUT) AND (NF_CANCELADA = 'N')
>                   AND ((NF_PROPRIA ='N' ) or ((NF_PROPRIA <> 'N') AND
> (((NF_CSTAT IS NULL) AND (NF_TPAMBIENTE = 0)) OR ((NF_CSTAT > 0) AND
> (NF_TPAMBIENTE = 1)))))
>            INTO SAIDAS, ENTRADAS;
>            PROD_ESTATUAL = QTDESTINICIO - COALESCE(ENTRADAS,0) +
> COALESCE(SAIDAS,0);
>
>            /* INSUMOS DE PRODUÇÃO */
>            SELECT SUM(DEPOIS) DEPOIS FROM (
>            SELECT (PDC.PDC_QTD * INS_QTD) + ((PDC.PDC_QTD * INS_QTD) *
> (INS_PPERDA/100)) DEPOIS
>            FROM TAB_INSUMOS INS
>                INNER JOIN TAB_PRODUCAO PDC ON INS.PROD_CODAUT =
> PDC.PROD_CODAUT
>                INNER JOIN TAB_PRODUTOS PROD INNER JOIN TAB_ESTINICIAL EST
> ON EST.PROD_ID = PROD.PROD_CODAUT ON INS.INS_PRODCODAUT = PROD.PROD_CODAUT
>            WHERE  (PROD.PROD_CODAUT = :PROD_CODAUT) AND (PDC.PDC_DTOS <
> :DTESTINICIO) AND (PDC.PDC_DTOS >= :DIA) ) TEMP
>            INTO SAIDASPRODUCAO;
>            PROD_ESTATUAL = PROD_ESTATUAL + COALESCE(SAIDASPRODUCAO,0);
>
>            /* PRODUTO PRODUZIDO*/
>            SELECT SUM(PDC.PDC_QTD) DEPOIS
>            FROM TAB_PRODUCAO PDC INNER JOIN TAB_ESTINICIAL EST ON
> EST.PROD_ID = PDC.PROD_CODAUT
>            WHERE (PDC.PROD_CODAUT = :PROD_CODAUT) AND (PDC.PDC_DTOS <
> :DTESTINICIO) AND (PDC.PDC_DTOS >= :DIA) INTO PRODUZIDO;
>            PROD_ESTATUAL = PROD_ESTATUAL + COALESCE(PRODUZIDO,0);
>        END
>    SUSPEND;
>    END
> END
>
>
>
>
> Desde já agradeço
>
>
> Alexandre Camilo.
>
>
> ______________________________________________
> 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
> 


______________________________________________
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





Mais detalhes sobre a lista de discussão lista