VC程序访问Oracle数据库的存储过程时的问题解决方案

在用VC开发的应用程序中,访问Oracle数据库存储过程中出现了问题如下:在脚本里面调用存储过程的时候,如果用exec mysp 就报告"无效字符";如果用 {call mysp} 则报告“游标错误” 奇怪的是,用一个古老的版本的平台程序则可以用 {call mysp} 完成调用。

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站制作、肃州网络推广、微信小程序、肃州网络营销、肃州企业策划、肃州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供肃州建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

原因排查:

最初的se程序在访问数据库接口的时候只区分select 开头的语句和非select开头的语句。对于非select开头的语句一律用odbc的 CDatabase::ExecuteSQL函数处理;对于select开头的语句使用 CRecordSet::Open处理。所以{call mysp}语句是用CDatabase::ExecuteSQL处理的,没有问题。

而新版本的se为了处理call mysp的返回,使用了CRecordSet::Open来处理。这在微软的SqlServer下没有问题,但是在Oracle下就不行了。

解决方案:

在连接oracle数据库的时候,call mysp这样的语句不能用 crecordset::open处理,只能用cdatabase::executesql处理。

说明:exec mysp 一般只能用在数据库服务器自己的客户端里面,如sqlserver的 企业管理器或者oracle的sql plus ,不能用在c语音接口里面。而call mysp则可以用于任何场合。

关于在VC开发的程序里面访问Oracle数据库存储过程的问题的原因分析及解决方案就介绍到这里了,如果您想了解更多关于Oracle数据库的知识,可以看一下这里的文章:http://database./oracle/,相信一定可以带给您收获的!

【编辑推荐】

  1. Oracle数据库consistent gets使用的特例
  2. Oracle数据库增删集合元素的Java实现方法
  3. Oracle数据库中TNSListener无法启动的解决方案
  4. Oracle数据库中AWR的组成及工作原理的详细介绍
  5. Oracle临时表游标未释放导致回滚段空间不足的解决方案

网站名称:VC程序访问Oracle数据库的存储过程时的问题解决方案
本文URL:http://www.stwzsj.com/qtweb/news26/4426.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联