我有一个数据库,表为:sum ,有两个字段:no,name ,数据库有1000条记录
我想一条一条地更新name字段中的内容,但每条记录的name中的数据都几乎不一样。我定义了:CRecordSet m_pSet,并做好了其它一切工作,只剩下更新,请问怎样一条一条地更新记录。(注:我试过通过eidt()和updata()这两个函数,但不行,他们不能更新这么多记录(如果不信,你们可以试试),请问有什么其它方法可以完成我它个小小的更新功能吗?

解决方案 »

  1.   

    可以的!
    while(m_pSet->IsEof())
    { m_pSet->edit();
      m_pSet->Updata();
      m_pSet->MoveNext()}
      

  2.   

    while(!m_pSet->IsEof())
    { m_pSet->edit();
      m_pSet->Updata();
      m_pSet->MoveNext()}
      

  3.   

    CString csSql = "update [表名] set 要更新的字段名 = '" + 要更新的字段值变量 + "' where 条件(如:xx = xx);";
    CDatabase *m_pDB = new CDatabase;
    m_pDB->Open(...);
    m_pDB->ExecuteSQL(csSql);
    ...
      

  4.   

    前面的二种方法不行,当执行到约130条记录时就会出错。UPDATA()不能一条一条地更新大量的记录(不信你们可以建一个1000条记录的数据库执行试一试)。
    手枪的方法可以,但我要对上千条记录都执行这样的语句效率太低了,因为要执行1000次UPDAT工A ,好象有一种游标机制,但我不知怎样在同MFC下用,请指教