调用Oracle 8.17的存储过程,如何处理Cursor类型的返回参数!

wt_sanlian 2004-10-11 01:10:11
用户要求两系统连网,对方软件人员给了一个存储过程接口,有两个参数,其中一个为输入参数,另一个为输出参数,输出参数为Cursor类型。
用ADO的存储过程组件时,设置输出参数时,无法设置成ftCursor类型。该如何处理啊?
高手们帮帮忙,谢谢!
...全文
175 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
chifengwatch 2004-10-14
升级你的ado
回复
wt_sanlian 2004-10-14
5.0
回复
COKING 2004-10-13
BCB版本?
回复
3996906 2004-10-12
我会用sql2000的,Oracle没用过,应该和数据库类型不大吧~~~~~~~现在ado这么牛
回复
wt_sanlian 2004-10-11
我是用一个DBGRId通过DataSource连接到存储过程组件的,当把第二个Cursor型的参数不指定,然后将存储过程的Active设为 True,在DBGrid即可显示出结果!但当把Active设为false时,即出现上面的异常!
回复
3996906 2004-10-11
寒~~~~~~~~输出参数不能当然不能指定啦~~~~~~~
你可以这样来得到输出吧
TCursor cursor = ADOStoreProc->Parameters->ParamByName("@out_Cursor")->Value;
再把你声明的ADOStoreProc delete掉
回复
wt_sanlian 2004-10-11
用ADO连接时,存储过程的第二个参数不指定,即可正常执行,但又遇到一个问题

当我执行完一次后,存储过程组件处在Active = true状态,但我用存储过程组件的Close()方法时,
出现"BOF或EOF中有一个是"真",或者当前的记录已被删除,所需操作要求一个当前的记录" 异常
如何解决这个问题,
高手们帮帮忙啊!
回复
3996906 2004-10-11
寒~~~~~~~~~~是那一个啊?bcb里没见啊?帮助里说支持这个类型的哦
回复
wt_sanlian 2004-10-11
在对象查看器中设置成ftCursor时,会出现"参数不在处理范围之内"
回复
3996906 2004-10-11
这样不行吗?
ADOStoreProc->Parameters->CreateParameter("@out_Cursor",ftCursor,pdOutput,4,0);

为什么不能设置成ftCursor?有说什么原因吗?
回复
hailin10 2004-10-11
学习
回复
发帖
数据库及相关技术
创建于2007-08-02

1158

社区成员

C++ Builder 数据库及相关技术
申请成为版主
帖子事件
创建了帖子
2004-10-11 01:10
社区公告
暂无公告