首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于调用oracle function的有关问题

2012-02-25 
关于调用oracle function的问题create function test (i in number,j out number) return number现在需要

关于调用oracle function的问题
create function test (i in number,j out number) return number
现在需要在c++ builder中调用这个function
我知道只有输入参数的话可以直接使用select function(参数) from dual;就可以调用了
但是当存在输出参数的话就是只能
declare
  result number;
  i number;
  j number;
begin
  result := test(i,j);
end;
才能调用
现在想得到j的值,怎么办?
谢谢

[解决办法]
作了一个测试,用的是ADO(用oracle Provider for OLE DB)+oracle8i+BCB6
1.建一个function:

create or replace function testio(i in number,j out number) return number
as
begin
j:=i+100;
return i*100;
end;

2.BCB 程序:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int j,k;

ADOQuery1->ParamCheck=false;
ADOQuery1->Parameters->Clear();

ADOQuery1->SQL->Text="begin :k:=testio(:i,:j); end;";


ADOQuery1->Parameters->CreateParameter("k",ftInteger,pdReturnValue,4,NULL) ;
ADOQuery1->Parameters->CreateParameter("i",ftInteger,pdInput,4,StrToIntDef(Edit1->Text,0)) ;
ADOQuery1->Parameters->CreateParameter("j",ftInteger,pdOutput,4,NULL) ;

ADOQuery1->ExecSQL();

j= ADOQuery1->Parameters->ParamByName("j")->Value;
k= ADOQuery1->Parameters->ParamByName("k")->Value;

 Edit2->Text=j;
 Edit3->Text=k;


}

热点排行