[firebase-br] RES: Erro estranho SP

Joao Paulo - Grupos joaopf.grupos em terra.com.br
Ter Maio 9 22:59:21 -03 2006


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/






Mais detalhes sobre a lista de discussão lista