请问如何在C++ Builder中动态地传递StoredProc的参数-------在线等待

josserchai 2002-07-16 12:14:50
详细地描述如下 :环境:C/S系统
本来我是用ADOCONNECTION来连接SQL服务器的,通过静态的连接后,将STOREDPROC的连接属性都静态的赋予ADOCONNECTION值,就可以在程序里面通过给STOREDPROC赋参数值来传递了。
我现在的问题是如果我当初就不给ADOCONNECTION空间赋初始值,在程序里面再给它动态的给值,然后将STOREDPROC的属性:CONNECTION 和 STOREDPROCNAME动态赋值,然后在用STOREDPROC的PARAMETERS-》PARAMBYNAME(“A”)=“”赋值,运行程序,结果程序编译通过,但是当执行到上面那一句话就立即报错。错误类型是没有找到参数“A”。而我们这个参数“A”是在服务器上面的存储过程定义了的,只是动态的调用而已,结果就是不行。请问,如何在程序中动态的传递STOREDPROC的参数给服务器的存储过程。请演示一个例子给我,立即好吗?多谢指教!!!
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytjoh 2002-08-13
  • 打赏
  • 举报
回复
例如
Database3 -> Connected = true;
sp -> Close();
sp -> StoredProcName = "zl_ztdmdz";
sp -> Params -> Clear();
sp -> Params -> CreateParam(ftString, "@shpsdm", ptInput);
sp -> Params -> CreateParam(ftString, "@shphdm", ptInput);
sp -> Params -> CreateParam(ftString, "@szpsdm", ptInput);
sp -> Params -> CreateParam(ftString, "@szphdm", ptInput);
sp -> Params -> CreateParam(ftString, "@shdmqz", ptInput);
sp -> Params -> CreateParam(ftString, "@rq", ptInput);
sp -> ParamByName("@shpsdm") -> AsString = shps;
sp -> ParamByName("@shphdm") -> AsString = shph;
sp -> ParamByName("@szpsdm") -> AsString = szps;
sp -> ParamByName("@szphdm") -> AsString = szph;
sp -> ParamByName("@shdmqz") -> AsString = shdm;
sp -> ParamByName("@rq") -> AsString = jzr;
Database3 -> StartTransaction();
sp -> Prepare();
try
{
sp -> ExecProc();
Database3 -> Commit();
}
catch(...)
{
Database3 -> Rollback();
return false;
}
josserchai 2002-07-16
  • 打赏
  • 举报
回复
大哥!这样出错说提供的参数太多呀!
是不是什么地方 不对!

难道没有人知道吗?
ytjoh 2002-07-16
  • 打赏
  • 举报
回复
1.设置STOREDPROC控件parambindmode属性为pbByName
2。STOREDPROC-> Params ->Clear();
3.STOREDPROC -> Params -> CreateParam(类型,名称,Input or output)
第三步可以查看BCB的在线帮助
josserchai 2002-07-16
  • 打赏
  • 举报
回复
可否给个例?
多谢!
一定给分!
yansea 2002-07-16
  • 打赏
  • 举报
回复
设定参数类型即可。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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