[firebase-br] RES: Erro estranho SP

Prisma Sistemas - Moacir prismars em prismars.com.br
Qua Maio 10 08:02:57 -03 2006


Faço das palavras do colega as minhas... Sempre maiusculas..

[ ]´s
Moacir


Joao Paulo - Grupos escreveu:
> Será que o parâmetro ParamByName('wcodigo_e')... Não deveria estar em
> maiusculo ?
> ParamByName('WCODIGO_E')...
>
> Já tive problemas de nomes de campos em minusculo... Depois disto usei como
> padrão escrever código SQL sempre em maiusculo...
>
> Joao Paulo
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
> nome de NextCorp Informatica
> Enviada em: terça-feira, 9 de maio de 2006 23:33
> Para: Lista Interbase - BR
> Assunto: [firebase-br] Erro estranho SP
>
> Caros colegas
>
> Está sp abaixo estava funcionando normalmente, mas de uma hora para outra
> começou a dar está msg de erro abaixo e não executar mais. Alguem tem alguma
> ideia do que pode estar acontecendo ?????
>
> MSG Erro na execução:
> Erro SQL Dinamico
> Parameter mismatch for procedure sp_gera_carne '. Process stopped
>
> Acontecendo no momento de passar o parametro (wcodigo_e)
>
> Dephi 5 pro, Fire 1.5.3, win 98
>
> No delphi chamo a sp abaixo:
>
> {Inicia a transação}
>      if not dmDados.IB_Transaction1.InTransaction then
>         dmDados.IB_Transaction1.StartTransaction;
>      {executa procedure no banco}
>       with dmDados.IB_StoredProc1 do
>          begin
>                StoredProcName:= 'SP_GERA_CARNE';
>                ParamByName('wcodigo_e').asInteger:= wcodigo;      // se 0
> gera para todos   
>                ParamByName('wdt_venc_e').asDateTime:=
> StrToDate(deDtVenc.Text);
>                if not Prepared then
>                   Prepare;
>                ExecProc;
>          end;
>      {final do processamento, tem que confirmar ou cancelar}
>
> Aqui a sp no banco: (suprimi alguns parametros de entrada, so para
> simplificar)
>
> CREATE PROCEDURE SP_GERA_CARNE (
>     WCODIGO_E INTEGER,
>     WDT_VENC_E DATE
> RETURNS (
>     WCLI_CODIGO INTEGER,
>     WCOBRA_TX CHAR(1),
>     WVALOR_MENSAL NUMERIC(15,2))
> AS
> DECLARE VARIABLE WVALOR_PARCELA NUMERIC(15,2); DECLARE VARIABLE WDT_VENC
> DATE; DECLARE VARIABLE WPARCELA VARCHAR(5); DECLARE VARIABLE WCONTA INTEGER;
> begin
>   if (:wcodigo_e = 0) then -- gera para todos
>      begin
>           for
>              select a.cli_codigo, a.cli_cobrar_tx_banc, b.pla_valor_mensal
>              from clientes a Left Join planos b On a.cli_tipo_plano =
> b.pla_controle
>              where (cli_gerar_cr = 'S') and (cli_status = 'S') and
> (cli_gerado = 'N')
>              into :wcli_codigo, :wcobra_tx, :wvalor_mensal
>           do
>             begin
>                 wconta= 1;
>                 wdt_venc= :wdt_venc_e;
>                 if (:wcobra_tx = 'S') then
>                    wvalor_parcela= (wvalor_mensal + wval_desp_ban);
>                 else
>                    wvalor_parcela= wvalor_mensal;
>                 while (:wconta <= :wnum_parc) do
>                     begin
>                         wparcela= udf_padl(Cast(:wconta as
> varchar(2)),'0',2)||'/'||udf_padl(Cast(:wnum_parc as varchar(2)),'0',2);
>                         insert into contas_receber(cre_controle,
> cre_cli_codigo, cre_ced_codigo, cre_parcela, cre_dt_venc, cre_valor_doc,
> cre_pago, cre_prn)
>                         values(Gen_id(gen_contas_receber_id,1),
> :wcli_codigo, :wced_codigo, :wparcela, :wdt_venc, :wvalor_parcela, 'N',
> 'N');
>                         wconta= wconta + 1;
>                         wdt_venc= wdt_venc + 31;
>                     end
>                 update clientes set cli_gerado = 'S'
>                 where cli_codigo = :wcli_codigo;
>             end
>           suspend;
>      end
> end^
>
> GRANT SELECT,UPDATE ON CLIENTES TO PROCEDURE SP_GERA_CARNE; GRANT SELECT ON
> PLANOS TO PROCEDURE SP_GERA_CARNE; GRANT INSERT ON CONTAS_RECEBER TO
> PROCEDURE SP_GERA_CARNE; GRANT EXECUTE ON PROCEDURE SP_GERA_CARNE TO SYSDBA;
>
> Atenciosamente
>
> Washington A. Müller da Silva
>
> #####################
> NextCorp Informática Ltda
> www.nextcorp.com.br
> nextcorp em terra.com.br
> 0 xx (51)-3589-3690
> ####################
> ______________________________________________
> 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
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 09/05/2006 / Versão:
> 4.4.00/4758 Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
>
>
> ______________________________________________
> 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