[firebase-br] Erro estranho SP
Alisson
arsuart em uol.com.br
Qua Maio 10 12:27:54 -03 2006
Cara. possivelmente isso eh problema no Componente do Delphi de
StoreProcedure..
faça o seguinte.. verifique se os parametros q estao mostrando no componente
corresponde com os parametros q vc tem no banco..
desde nome.. a tipo de dados..
ou se preferir..
na propriedade StoreProcName do componente.. apague ou troque por outro
nome.. depois volte o nome da procedure q estava usando..
pra q ele possa renovar as variaveis de Entrada e Saida.. possivelmente ele
nao atualizou alguma variavel..!!!!
caso vc tenha adicionado algum campo novo na procedure pelo banco..!!!
falow..!!!!
"NextCorp Informatica" <nextcorp em terra.com.br>
escreveu na mensagem news:006b01c673d9$fedafde0$6401a8c0 em nextcorp...
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
Mais detalhes sobre a lista de discussão lista