[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