非法的描述器索引 我执行SQL语句( select sum(cjsl) from table,select count(*) from table)等语句报非法的描述器索引,而执行(select * from table)没问题,有谁遇到过啊谁帮我找出问题我给150分.......!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是应该这样?select sum(cjsl),count(*) from table 我试过FOXPRO,和SQL通过ODBC定义的DSN数据源连接,结果都一样执行select sum(cjsl),count(*) from table也报非法的描述器索引我是用的MFC ODBC.你们执行类似语句不报错吗?! 用的是CRecordSet吧,只能select * from tb,想知道怎么解决吗,来问我吧! 必需要字段名,你可以如下:select sum(cjsl) as total from tableselect count(*) as count from table ffit不用卖关子吧,知道就贴出来嘛 用select sum(cjsl) as total from table也不行我试过的!!ffit 老兄说的对是用的CRecordSet,你有什么好办法可以解决我把分全给你!!!!! 和我的问题一样,我头疼了快一个月了,帖子都挂了1个月了,关注,关注,不要忘了解决告诉我一声,信箱:[email protected]http://expert.csdn.net/Expert/topic/1350/1350524.xml?temp=.2760889ffit快帖出来,我也给你加分,到我的帖子上,全部给你!!!!!!! 可能是不能真确定位,你试试用两个CRecordSet变量分别操作. 不行吧,连接Access可以的,但是连Oracle就不行了。 告诉大家我的办法:如果只选一个字段:如select cjsl from table或select count(*)或select sum(cjsl)对生成的CRecordSet的派生类(就是对应的表)作如下修改:在.h中,删除其他的变量,只保留m_cjsl在.cpp中,构造函数中变量的初值同样只保留m_cjsl,同时修改m_nFields = 1;在DoFieldExchange(CFieldExchange* pFX),同样也只保留一个即可.编译运行.如果是count(*),定义一个long的变量,参照上面的修改进行修改.如果是select count(*),sum(cjsl) from tb这种两个以上的,同样保留2个变量就可以了,m_nFields = n.这种方法其实很麻烦,相当一个SQL语句要对应一个类,没办法.产生这种现象的原因,我想应该是CRecoedSet的问题,因为一次SQL查询如果只返回一个列,那其他的列在进行DoFieldExchange(CFieldExchange* pFX)时势必出错.这也是本人初学CRecordSet时百思不得其解的问题. 怎么连接Access就没有问题呢? ffit 老兄还是你厉害,我找了好久都没有找到问题的原因。本人对你的敬仰有如黄海之水滔滔不绝,,, 我的VC.net突然不能调试了 多个进程间如何实现串口控制共享 急求:请问如何将"计算机管理"中的内容用程序读取出来? 怎么判断程序(exe文件或dll文件)是不是调试版本? 从文本读几万行,每行读5个数据到数据库里面,平均一万行需要15秒? 添加一个菜单项,运行时自动变灰的问题??? 数据库备份(急 急 急 急 急)在线等 我的天那,,VC怎么会出这种问题???????????????// 怎样用ado调用access数据库中的数据? 超菜问题? 在VC里能不能把某些类提出来调试,调试好再全部调试? Autorun.inf 急急!!!!!!!!!!!!!!!!在线
select sum(cjsl),count(*) from table
执行select sum(cjsl),count(*) from table也报非法的描述器索引
我是用的MFC ODBC.你们执行类似语句不报错吗?!
select sum(cjsl) as total from table
select count(*) as count from table
也不行我试过的!!
ffit 老兄说的对是用的CRecordSet,你有什么好办法可以解决我把分全给你!!!!!
http://expert.csdn.net/Expert/topic/1350/1350524.xml?temp=.2760889
ffit快帖出来,我也给你加分,到我的帖子上,全部给你!!!!!!!
如果只选一个字段:如select cjsl from table或select count(*)或select sum(cjsl)
对生成的CRecordSet的派生类(就是对应的表)作如下修改:
在.h中,删除其他的变量,只保留m_cjsl
在.cpp中,构造函数中变量的初值同样只保留m_cjsl,同时修改m_nFields = 1;
在DoFieldExchange(CFieldExchange* pFX),同样也只保留一个即可.
编译运行.
如果是count(*),定义一个long的变量,参照上面的修改进行修改.
如果是select count(*),sum(cjsl) from tb这种两个以上的,同样保留2个变量就可以了,m_nFields = n.
这种方法其实很麻烦,相当一个SQL语句要对应一个类,没办法.
产生这种现象的原因,我想应该是CRecoedSet的问题,因为一次SQL查询如果只返回一个列,那其他的列在进行DoFieldExchange(CFieldExchange* pFX)时势必出错.
这也是本人初学CRecordSet时百思不得其解的问题.
黄海之水滔滔不绝,,,