ADO + VC++ + MS-SQLSERVER(报错)

rezood 2004-08-27 05:21:19
现有数据库里表e_time中缺少2004年8月分的数据,我用下面的去收索数据,但出现错误
pRecordset->Open(select*from e_time where time between'2004-08-14'and'2004-08-15',vConn,adOpenStatic,adLockReadOnly,adCmdText);

错误如下:unhandled exception in Time.exe(KERNEL32.DLL):0xE06D7363:Microsoft C++ Exception
可是如果数据不空的话,就正确执行了
这是怎么会事,怎么解决,望大虾们指教一二!!!
感谢!!!
...全文
133 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
large_small 2004-08-31
  • 打赏
  • 举报
回复
当ADO的记录集为空时,
就不能再针对该记录集移动指针或是操作,
不然就会出现你所说的错误,
为了避免的话,你就要确定一下它返回的记录集是否为空
如果是空则跳过就可以了
Kudeet 2004-08-31
  • 打赏
  • 举报
回复
你是用的SQL数据库吧!
这样
pRecordset->Open(select * from [e_time] where [time] between'2004-08-14'and'2004-08-15',vConn,adOpenStatic,adLockReadOnly,adCmdText);

给关键字都加上[]
xzh888 2004-08-31
  • 打赏
  • 举报
回复
可能是ADO查找数据集时没有发现数据后报出错误,你没有进行错误捕捉造成的,捕捉错误应该不会出现
rezood 2004-08-27
  • 打赏
  • 举报
回复
我考到查询分析器能执行啊,
不是对数据记录集操作的错误
运行到这一句就抱错的
怎么会事呢?
oyljerry 2004-08-27
  • 打赏
  • 举报
回复
当你的程序查到的数据为空时,捕捉一下错误
howtotell 2004-08-27
  • 打赏
  • 举报
回复
你把你的这条语句拷贝到查询分析器里看能不能执行?
Kudeet 2004-08-27
  • 打赏
  • 举报
回复
估计是你在没有数据的时候对记录进行操作!
if(m_set->GetRecordcount()!=0)
m_set->MoveFirst();
while(!m_set->adoEOF)
{
.....
}
Kudeet 2004-08-27
  • 打赏
  • 举报
回复
那就不是SQL语句的问题吧!
看看其他的代码?

4,018

社区成员

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

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