我想对数据库中的所有记录按字段test排序,然后在t_id字段里面
添上记录号,用的就是下面的一个小程序。但是很奇怪,更新一会儿以后
就会报错退出,:(,不知道是什么原因。后来我去看那个数据库,发现
已经更新了8395个记录了!这是怎么回事呢?
void CVocDlg::OnAddId() 
{
// TODO: Add your control notification handler code here
int n=1;
m_data.OpenData();   //打开数据库所有记录。
while(!m_data.m_pRecordset->adoEOF)
{
m_data.m_pRecordset->PutCollect("G_ID",(_variant_t)(long)n);
m_data.m_pRecordset->Update();
m_data.m_pRecordset->MoveNext();
n++;
}
m_data.Close();
}
那位大虾知道吗?
帮忙看看啊,我都急死了!
谢谢了!

解决方案 »

  1.   

    一个语句解决的问题你干嘛大动干戈???
    你这样没有效率
    用update语句。
      

  2.   

    大虾,什么update语句啊?
    我不懂,:)
      

  3.   

    m_data.Close();之前用m_data.UpDate();
      

  4.   

    怎么用啊?sql里面有变量吗?
    update table set field= n+1;
    这样吗?但是有变量可以定义吗?
      

  5.   

    to:sdf123321
    关键是根本就还没有到那一步啊!
    // TODO: Add your control notification handler code here
    int n=1;
    m_data.OpenData();   //打开数据库所有记录。
    while(!m_data.m_pRecordset->adoEOF)
    {
    m_data.m_pRecordset->PutCollect("G_ID",(_variant_t)(long)n);
    m_data.m_pRecordset->Update();
    m_data.m_pRecordset->MoveNext();
    n++;
    在循环内部就死了!:(,n=9437吧!可能有的时候不一样,:(
    }
    m_data.Close();
      

  6.   

    int n=1;
    m_data.OpenData();   //打开数据库所有记录。
    while(!m_data.m_pRecordset->adoEOF)
    {
    m_data.m_pRecordset->PutCollect("G_ID",(_variant_t)(long)n);
    m_data.m_pRecordset->MoveNext();
    n++;
    }
    m_data.m_pRecordset->Update();
    m_data.Close();
      

  7.   

    lizmei001(暗黑) :
    还是不行啊!在执行到
    m_data.m_pRecordset->Update();的时候出错了!
    我的数据量可能比较大。3万多,有问题吗?