Retorno de uma Function no Oracle
21/11/2005
0
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 ?
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
Curtir tópico
+ 0
Responder
Posts
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
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
Clique aqui para fazer login e interagir na Comunidade :)