导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

有关OCI的简单问题,三日内给分!

ysli 2001-09-03 11:54:23
我们准备在数据库后台用OCI编程,因对OCI并不熟悉,所以准备做法如下:
1、在sql中(注意不是在C语言中)定义一个TMP*n[m]数组,n为字段数,m为记录数
2、在sql中用cursor完成多个纪录的读取,并放入TMP数组中

然后如何将这个数组的内容取出(即取到C语言的数组变量中)呢??我们不能用oracle的编程工具,只能使用OCI方式

或是哪位有其他用OCI读出多条记录的办法?多多谢谢了!!!
...全文
151 点赞 收藏 18
写回复
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
flylotus 2001-09-05
你可以先用pro*c,然后查看编译出的c代码
回复
ysli 2001-09-05
多谢各位!今天下班时结贴,各位还有新招请再赐教!
回复
xzou 2001-09-05
那只能说明你没有用到oci的函数,
试着定义OCIClobLocator *a_clob;
这个应该是oci定义的类型吧
回复
ysli 2001-09-05
是么,我们这样试过,但转换后的C代码好像没有OCI函数呢
回复
xzou 2001-09-04
to aniugecn()
你的数组定义的应该是个结构数组把,要与我取得的结果集记录类型相对应把,这个怎么简单呢?
比如:我在sql里 是为了取得 select id,name,age,errmag from mytable的结果集
其中,id number(10) name char(20) age int errmsg varchar2(30)
你在c里面的a数组该怎么定义,如何确定我的返回记录数?难道还要先select count(*) 先?
如果我想取得所有的值呢?
回复
aniugecn 2001-09-04
其实挺容易的在c中定义一个数组a[100],在调用OCIDefineByPos时指定此数组为输出变量
而后在调用OCIStmtFetch时指定取100条那么就可以将从当前位置开始的100条记录取
到数组a中。
回复
aniugecn 2001-09-04
不好意思,手头没有这方面的例子,你可以到oracle公司的网站上下载oci的开发指南,那上面
有详细的介绍
回复
qianby 2001-09-04
up
回复
xzou 2001-09-04
to aniugecn():
能给个这方面的小例程吗?谢谢,或是什么地方有着方面的资料也行
回复
aniugecn 2001-09-04
to:xzou(缺齿小狼)当数据从ORACLE中取到C中时自动进行数据转换,当然不可能一次把所有的
记录都取出的,也是要多次取直至取完,只不过每次取的记录多而已
回复
tigerwood12345 2001-09-03
关注,帮你UP
回复
ysli 2001-09-03
to haihong:我们看过一些oci的例子,没有发现要找的东东,555...偶们会继续看的。。。
to xzou:是考虑过‘只好在程序里定义结构,在程序里一条一条的得到结果集结果。’,但总感觉太。。。麻烦了些
to aniugecn:就是想知道如何取呀?!
各位请再指教!
回复
ysli 2001-09-03
我们看过一些oci的例子,没有发现要找的东东,555...偶们会继续看的。。。
to xzou:是考虑‘只好在程序里定义结构,在程序里一条一条的得到结果集结果。’,但总感觉太。。。麻烦了些
to aniugecn:就是想知道如何取呀?!
各位请再指教!
回复
aniugecn 2001-09-03
在oci中可以一次将一批结果取到c语言的数组中的
回复
xzou 2001-09-03
这些东西主要要考虑sql类型与C语言类型的一一对应,按你说的,必须要有一种结构进行二者的传递,可以考虑用存储过程返回游标,程序里取游标返回的数据,或者只好在程序里定义结构,在程序里一条一条的得到结果集结果。
回复
haihong 2001-09-03
你是想让我教你oci怎么用吗?很多的内容啊,你应该去oracle 目录下找几个demo 的例子看看
cdemo81是最简单的例子了
回复
ysli 2001-09-03
据我理解pro*C最总也是用的OCI接口,是不?那么如果用pro*C可以,用OCI应该也可以的,请各位继续赐教
回复
dark_thor 2001-09-03
为什么不用ProC?
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告