[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