Retorno de uma Function no Oracle

21/11/2005

Pessoal, criei uma Function no Oracle que me retona um NUMBER.

No meu DM coloquei um componente sqlStoredProc da Paleta dbExpress. Consigo acessar perfeitamente essa Function e todos os seus parametros são trazidos perfeitamente.

Parametros trazidos da Function:

0 - Result - ftBCD - ptOutput
1 - v_peso1 - ftBCD - ptInput
2 - v_peso2 - ftBCD - ptInput
3 - v_peso2 - ftBCD - ptInput

Agora preciso pegar o resultado dessa function, estou tentando atráves do paramentro OutPut que foi trazido da Function, mais sempre me retorna o sequinte erro : ´dbExpress Error : Invalid Parameter´

O Código que chama a Function é o sequinte :

procedure TCAQ_FUNC001.bbtCalcularClick(Sender: TObject);
var v_result : Real;
begin
try
dmCAQ2.cdsCAQfuncPF.FetchParams;
dmCAQ2.cdsCAQfuncPF.Params[0].Value := v_result;
dmCAQ2.cdsCAQfuncPF.Params[0].Value := edtPesoCadinho.Value;
dmCAQ2.cdsCAQfuncPF.Params[1].Value := edtPesoAmoAntes.Value;
dmCAQ2.cdsCAQfuncPF.Params[2].Value := edtPesoAmoApos.Value;
dmCAQ2.cdsCAQfuncPF.Execute; {Aqui da o erro }
edtResultadoXP.Value := v_result;
except
showMessage(´Problemas com o calculo da analise !´);
end;
end;


Alguém poderia me dizer oque estou fazendo de errado ?


Mascotepc

Respostas

22/11/2005

Mascotepc

Pessoal houve um erro de digitação coloquei o mesmo indice em Params.

o correto seria:

procedure TCAQ_FUNC001.bbtCalcularClick(Sender: TObject);
var v_result : Real;
begin
try
dmCAQ2.cdsCAQfuncPF.FetchParams;
dmCAQ2.cdsCAQfuncPF.Params[0].Value := v_result;
dmCAQ2.cdsCAQfuncPF.Params[1].Value := edtPesoCadinho.Value;
dmCAQ2.cdsCAQfuncPF.Params[2].Value := edtPesoAmoAntes.Value;
dmCAQ2.cdsCAQfuncPF.Params[3].Value := edtPesoAmoApos.Value;
dmCAQ2.cdsCAQfuncPF.Execute; {Aqui da o erro }
edtResultadoXP.Value := v_result;
except
showMessage(´Problemas com o calculo da analise !´);
end;
end;


OBS : O erro continua


Responder Citar