[在线等候]使用 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 结合时不支持 子查询吗?
请高手帮俺指点迷津。
谢谢!
问题比较急,在线等待!