[在线等候]使用 vc++6.0 的CRecordset 类访问 oracle 数据库时,m_strfilter 中不能包含子查询的问题

双子东宝 2006-06-27 02:50:21
在vc中创建了一个关于 机构表(tb_orga_info)的记录集类 Rst_OrgaInfo;
实际调用中:

Rst_OrgaInfo tbOrgaInfo;
strFilter.Format( " F_ORGA_ID IN ( SELECT F_POPE_ID FROM TB_OPER_POPEDOM "
" WHERE F_OPER_ID = '%s' AND F_POPE_TYPE = 2 ) ",
chOperId);

其中 chOperId 为传入的操作员帐号变量。
在调用
tbOrgaInfo.Open();
时,vc中报错:
“不能在包含 distinct 子句、union、intersect 或 minus 的联接中以及只读结果集中使用键集驱动的游标”

如果我把 strFilter 中的查询子句换成实际的编号,如:
strFilter = " f_orga_id in ( 1 , 2 , 3 , 21 ) "
则不会报错。

同样的程序代码我在使用ms sql server 数据库时没有报错。
而同样的sql 子查询语句,我在 sql plus 中执行也没有问题。
难道是vc 的 CRecordset 类在跟 oracle 结合时不支持 子查询吗?
请高手帮俺指点迷津。

谢谢!
问题比较急,在线等待!

...全文
109 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
双子东宝 2006-06-27
  • 打赏
  • 举报
回复
up shanglai

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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