关于OCI 查询

banyibanyi2 2009-09-24 07:49:06
hDefine = NULL;
OCIDefineByPos(stmtp,
&hDefine,
errhp,
1,
&myt.no,
sizeof(myt.no),
SQLT_INT,
NULL,
NULL,
NULL,
OCI_DEFAULT);


OCIDefineByPos(stmtp,
&hDefine,
errhp,
2,
myt.name,
sizeof(myt.name),
SQLT_STR,
NULL,
NULL,
NULL,
OCI_DEFAULT);

OCIDefineArrayOfStruct(hDefine,
errhp,
sizeof(myt),
0,0,0);


OCIStmtExecute(svchp,stmtp,errhp,1,0,NULL,NULL,OCI_DEFAULT);


在实行SQL语句的时候会出错,我想知道OCI输出多个变量是否是想我这样必须用结构体,这几个函数具体怎么用,昨天开始
学的OCI学的脑袋疼,单位也没人用这个,请大家帮帮忙
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
inthirties 2009-09-24
  • 打赏
  • 举报
回复
帮顶一下,这里搞OCI的比较少。
banyibanyi2 2009-09-24
  • 打赏
  • 举报
回复
OCIStmtExecute(svchp,stmtp,errhp,0,0,NULL,NULL,OCI_DEFAULT);
我改成这样后就可以正常查出我需要的数据了
我在这个之前查过select empno from emp;时好用
只需:hDefine = NULL;
OCIDefineByPos(stmtp,
&hDefine,
errhp,
1,
&myt.no,
sizeof(myt.no),
SQLT_INT,
NULL,
NULL,
NULL,
OCI_DEFAULT);
OCIStmtExecute(svchp,stmtp,errhp,1,0,NULL,NULL,OCI_DEFAULT);

但是当我的查询为 select empno,ename from emp后
hDefine = NULL;
OCIDefineByPos(stmtp,
&hDefine,
errhp,
1,
&myt.no,
sizeof(myt.no),
SQLT_INT,
NULL,
NULL,
NULL,
OCI_DEFAULT);


OCIDefineByPos(stmtp,
&hDefine,
errhp,
2,
myt.name,
sizeof(myt.name),
SQLT_STR,
NULL,
NULL,
NULL,
OCI_DEFAULT);
OCIStmtExecute(svchp,stmtp,errhp,1,0,NULL,NULL,OCI_DEFAULT);
执行有错
我就改为了一楼的版本,一样结果有错,但将OCIStmtExecute(svchp,stmtp,errhp,1,0,NULL,NULL,OCI_DEFAULT);
第四个参数改为0 就没有错误了 请大哥们讲讲

17,136

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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