ADOStoredProc如何调用Oracle的存储过程?

wuxking 2004-04-02 04:28:53
ADOStoredProc如何调用Oracle的存储过程?

我有一个Oracle的存储过程 Pro_test(p1 in varchar2,p2 in varchar2, p3 out varchar2)
请问用ADOStoredProc如何调用?
我写的是
ADOStoredProc1->ProcedureName="ERP.PRO_GETONEBOM";
ADOStoredProc1->Prepared;
ADOStoredProc1->Parameters->ParamByName("p1")->Value="abc";
ADOStoredProc1->Parameters->ParamByName("p2")->Value="test"
ADOStoredProc1->ExecProc();
String s_flag=ADOStoredProc1->Parameters->ParamByName("p3")->Value;
编译通过,运行时说 参数"p1" not found
如何调用oracle的存储过程?用ADO的连接。谢谢!
...全文
103 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
GSdeng 2004-05-09
  • 打赏
  • 举报
回复
我也碰到同样的问题
wuxking 2004-04-07
  • 打赏
  • 举报
回复
反正我觉得还是没有BDE的好用。
试过的,不行哦。
我的数据库是Oracle9i
反正还是抱错。
总是说 参数 没有找到。为什么啊?!!!
liangqihui999 2004-04-07
  • 打赏
  • 举报
回复
不会呀简单使用没什么问题的,对了,你册参是pl(L小写)还是p1(一)会不会拼错?
xu_xinyu 2004-04-05
  • 打赏
  • 举报
回复
//设置存储过程名称,刷新参数
frmData->adoSp->Close();
frmData->adoSp->ProcedureName = "InsTabBrchWatBase";
frmData->adoSp->Parameters->Clear();
frmData->adoSp->Parameters->Refresh();

//设置参数
frmData->adoSp->Parameters->ParamByName(cBaseId)->Value =
leBaseId->Text.ToInt();
frmData->adoSp->Parameters->ParamByName(cDistrict)->Value =
mcbbDistrict->Datas->Strings[mcbbDistrict->ItemIndex];
frmData->adoSp->Parameters->ParamByName(cPwrSupType)->Value =
mcbbPwrSupType->Datas->Strings[mcbbPwrSupType->ItemIndex];
frmData->adoSp->Parameters->ParamByName(cOwner)->Value =
leOwner->Text;
...
//执行存储过程
frmData->adoSp->Prepared;
frmData->adoSp->ExecProc();

如果刷新不能得到存储过程的参数的话,就只有手工添加了,代码见第一个回复。

wuxking 2004-04-05
  • 打赏
  • 举报
回复
老大,能不能给出具体的代码,我搞不定啊。
wuxking 2004-04-03
  • 打赏
  • 举报
回复
那我有很多个参数怎么办?
帮忙给出说明,每一步都是什么意思?我没有用过这个控件。谢谢。
xu_xinyu 2004-04-03
  • 打赏
  • 举报
回复
你可以试一下adosp->Parameters->Refresh();
如果不能得到参数信息的话就只有一个一个添加了,
每个参数需要设置参数的类型,输入输出方向,字符串类型还要设置长度。
要和数据库中的一样。多试几次吧。
xu_xinyu 2004-04-02
  • 打赏
  • 举报
回复
在调用之前要创建参数。
ADOStoredProc1->AddParameter;
PCount = ADOStoredProc1->Parameters->Count - 1;
ADOStoredProc1->Parameters[PCount]->DataType = ftString;
ADOStoredProc1->Parameters[PCount]->Direction = pdInput;

ADOStoredProc1->Parameters[PCount]->Value = "malathion";

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧