我想对数据库中的所有记录按字段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();
}
那位大虾知道吗?
帮忙看看啊,我都急死了!
谢谢了!
添上记录号,用的就是下面的一个小程序。但是很奇怪,更新一会儿以后
就会报错退出,:(,不知道是什么原因。后来我去看那个数据库,发现
已经更新了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();
}
那位大虾知道吗?
帮忙看看啊,我都急死了!
谢谢了!
你这样没有效率
用update语句。
我不懂,:)
update table set field= n+1;
这样吗?但是有变量可以定义吗?
关键是根本就还没有到那一步啊!
// 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();
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();
还是不行啊!在执行到
m_data.m_pRecordset->Update();的时候出错了!
我的数据量可能比较大。3万多,有问题吗?