现在是从数据库中查询出所有的数据到记录集.然后就是通过循环记录集来滚动显示.
就是用Rs.movenext(); 到结束的时候再 Rs.MoveFirs();但是放在那边循环二三个小时左右之后会出不明的错误. 
我想把这个改进一下. 不用记录集循环. 大家有没有好的解决方案?

解决方案 »

  1.   

    从数据库查询到数据后保存在本地的一个列表里,然后在这个列表中循环
    比如while(!rs.eof())
    {
       list.InserItem("");
       保存各个字段
       rs.movenext()
    }
    用数据的时候
    for(int i=0;i<list.GetListCount();i++)
    {
       你的操作
       if(i==list.GetListcount()-1)
           i=0;
    }
      

  2.   

    你这个列表(list)怎么声明?
    我查MSDN怎么没发现这个对象.
      

  3.   

    CList
    你的错误应该是数据库断开了
      

  4.   

    CObList list;
    class CMyData : public CObjet

       int field1;
       int field2;
       CString field3;
    .
    .
    .
      <类型> fieldn;}
    while(!rs.eof())
    {
       CMyData * pdata = new CMydata();
       pdata->field1= ;
    .
    .
    .
       pdata->fieldn= ;
       list.AddTail(pdata);
       rs.movenext()
    }
    用数据的时候
    for(int i=0;i<list.GetCount();i++)
    {
       CMyData * pdata =list.GetAt(i);
       你的操作
       if(i==list.GetCount()-1)
           i=0;
    }
    退出程序时
    for(int i=0;i<list.GetCount();i++)
    {
       CMyData * pdata =list.GetAt(i);
       delete pdata;
    }
    list.RemoveAll();