[firebase-br] RES: Duvidas com procedures RESOLVIDO

Carlos H. Cantu listas em warmboot.com.br
Sex Maio 10 09:40:58 -03 2013


Isso indica que o charset escolhido para o banco de dados e/ou conexão
está incorreto (não aceita acentos).

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

A> o erro era o seguinte:

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

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

A> Vlw

A> Obrigado a todos

A> Alexandre Camilo



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

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

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




A> "Alexandre" <camilo em apollosistemas.com.br> 
A> escreveu na notícia da 
A> 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
>> 


A> ______________________________________________
A> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
A> Para saber como gerenciar/excluir seu cadastro na lista, use:
A> http://www.firebase.com.br/fb/artigo.php?id=1107
A> Para consultar mensagens antigas: http://firebase.com.br/pesquisa


A> ______________________________________________
A> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
A> Para saber como gerenciar/excluir seu cadastro na lista, use:
A> http://www.firebase.com.br/fb/artigo.php?id=1107
A> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista