ado获取记录集,弹出错误“多步操作产生错误。请检查每一步的状态值。”

intLiang 2012-10-02 10:45:50
求大侠帮助,我用ADO的_RecordsetPtr的open函数获取记录集时,出现这样的错误:“多步操作产生错误。请检查每一步的状态值...”。我用普通的查询语句则完全没有问题,但一用下面这个sql语句就出错了,而且如果是首次执行则没有问题,如果之前有获取过记录集则第二次用到此语句获取时会报以上错误:
上面说的出问题sql语句如下(此sql语句在查询分析器下使用没任何问题,能得出数据):
SELECT
STR((DL_5+DL_6+DL_7)/(DL_0+DL_1+DL_2+DL_3+DL_4+DL_5+DL_6+DL_7),8,6) AS MRR下行质差话务比例,
STR((UL_5+UL_6+UL_7)/(UL_0+UL_1+UL_2+UL_3+UL_4+UL_5+UL_6+UL_7),8,6) AS MRR上行质差话务比例
FROM
(
SELECT
SUM(A.DL质量0*A.DL质量采样数) AS DL_0,
SUM(A.DL质量1*A.DL质量采样数) AS DL_1,
SUM(A.DL质量2*A.DL质量采样数) AS DL_2,
SUM(A.DL质量3*A.DL质量采样数) AS DL_3,
SUM(A.DL质量4*A.DL质量采样数) AS DL_4,
SUM(A.DL质量5*A.DL质量采样数) AS DL_5,
SUM(A.DL质量6*A.DL质量采样数) AS DL_6,
SUM(A.DL质量7*A.DL质量采样数) AS DL_7,
SUM(A.UL质量0*A.UL质量采样数) AS UL_0,
SUM(A.UL质量1*A.UL质量采样数) AS UL_1,
SUM(A.UL质量2*A.UL质量采样数) AS UL_2,
SUM(A.UL质量3*A.UL质量采样数) AS UL_3,
SUM(A.UL质量4*A.UL质量采样数) AS UL_4,
SUM(A.UL质量5*A.UL质量采样数) AS UL_5,
SUM(A.UL质量6*A.UL质量采样数) AS UL_6,
SUM(A.UL质量7*A.UL质量采样数) AS UL_7
FROM
STS2012v1.dbo.MRR上下行质量2012 A
join
STS2012v1.dbo.查询小区集20120926 B
ON A.小区名=B.小区名
where A.时间 between '2012-09-02 00:00:00' and '2012-09-02 23:00:00'
AND DATEPART(hh,A.时间) IN ('10','11','20','21')
and DATEPART(mi,A.时间)='0'
and B.区域类型 = '普通区域'
)C
...全文
187 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
intLiang 2012-10-04
  • 打赏
  • 举报
回复
呃、、知道问题了。。原来是我数据库SQL Server本身有问题,可能是之前没有安装好,我把代码拷到别的机器上的数据库中则完全没问题!好了,结贴了。
yeah2000 2012-10-03
  • 打赏
  • 举报
回复
你使用中文,会不会跟编码有关系?
intLiang 2012-10-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你使用中文,会不会跟编码有关系?
[/Quote]

不是编码问题,因为我用其它有中文的语句,它是可以查询的。谢谢你的回复。
我今天发现问题了,原来是数据的格式问题。
上面的那些DL_0,DL_1数据都是整型的,它们用这个公式“STR((DL_5+DL_6+DL_7)/(DL_0+DL_1+DL_2+DL_3+DL_4+DL_5+DL_6+DL_7),8,6)”求出来的是浮点型的,所以用ADO取出来就报那个错误了。如果我只是单纯拿与数据项一样类型的数据出来就没有错误了,我猜是不是获取出来的数据项内容必须要跟数据库中对应的类型一致才可以?
intLiang 2012-10-02
  • 打赏
  • 举报
回复
谁能帮帮我,找了好久都不知道是什么问题,现在急着交差,知道的麻烦跟我讲解下,非常谢谢了。。

4,011

社区成员

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

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