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

数据库 Oracle
本文我们主要介绍了在VC开发的应用程序访问Oracle数据库的存储过程时出现问题的原因排查以及解决方案,希望能够对您有所帮助。

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

原因排查:

最初的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.51cto.com/oracle/,相信一定可以带给您收获的!

【编辑推荐】

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

2011-08-23 10:02:26

Oracle数据库存储过程挂死

2010-05-04 11:30:29

Oracle汉字长度

2010-05-31 12:53:56

Nagios apac

2010-04-16 13:34:00

Oracle Java

2019-07-16 06:30:19

MySQL同步延迟数据库

2010-02-24 10:55:01

WCF跨域访问

2010-07-30 12:40:00

Flex跨域访问

2010-05-11 12:57:45

MySQL数据库编码

2012-05-09 10:08:41

跨机房

2010-05-20 11:06:01

IIS服务器

2010-03-30 16:04:34

Linux Nginx

2009-09-03 16:09:48

.net回车符

2010-09-27 13:14:42

JVM内存限制

2010-02-23 17:49:56

WCF传输大数据

2011-07-28 11:28:21

SQL Server数注册表编辑器

2010-10-28 13:53:13

ORACLE存储过程

2009-03-18 09:26:23

Winform多线程C#

2011-08-25 18:35:07

Linux cron执

2020-05-06 14:14:50

Linux依赖软件

2010-10-08 13:09:38

JavaScript数
点赞
收藏

51CTO技术栈公众号