我用 ADO 从数据库里读数据,当记录实在太多了的时候就死机了,该怎么办?

PatrickGamp 2001-07-16 05:29:29
好象 ADO 方式读数据库时把所有的记录都读出来,直到内存不能承受为止,那么在第一
次调用了 SQL 语句后,按我的想法应该有第二次调用,就像 Resume 的意思一样,可我
不知道这个接着读数据库的函数是什么?谁能帮助我,谢谢了,我的给分信誉一直很好的.
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
PatrickGamp 2001-07-18
  • 打赏
  • 举报
回复
prec->CursorLocation = adUseServer;
prec->Open(_variant_t(Holder),
theApp.m_pAdoConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);

Holder.Empty();
fieldcnt=prec->Fields->Count;
while(!prec->adoEOF)
{
TheValue = prec->GetCollect("content");//死
if(TheValue.vt!=VT_NULL)

我把代码按照 serf 说的改成 adUseServer, 结果在上面的地方死了,没有解决
PatrickGamp 2001-07-18
  • 打赏
  • 举报
回复
感谢大家的答复,我仔细测试后再给大家分
serf 2001-07-17
  • 打赏
  • 举报
回复
CursorLocation设置为AdUseServer.不要用AdUseClient即可解决
mywater 2001-07-16
  • 打赏
  • 举报
回复
ADO并不是一次把所有的纪录都读回来!!
我读过100万条都没事!!这是有缓存的!
不过,我没发现什么业务需要你一次读很多的纪录,具体说说,一起想想办法!
一般的情况,不需要要一次读取10000条以上的纪录!
总是有办法的
XiangDong 2001-07-16
  • 打赏
  • 举报
回复
别用客户端游标
neomeng 2001-07-16
  • 打赏
  • 举报
回复
对,你用一下数据库游标来试试。
ZHENG017 2001-07-16
  • 打赏
  • 举报
回复
什么数据库,oracle 有fetch,
sql server 有 top n.

4,012

社区成员

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

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