CDaoDatabase database;
...
database.Open (sFile,false,false,"Excel 5.0");
CDaoRecordset recset(&database);
...
recset.MoveNext ();//跳过若干条记录
recset.MoveNext ();
for(int j=1;j<=i;j++)
{
TCHAR msg[255]="";
sprintf(msg,"%d",j);
recset.Edit ();
recset.SetFieldValue ("A1",msg);
recset.SetFieldValue ("B1",data.GetAt (j-1));
recset.Update ();
recset.MoveNext ();
// Sleep(200);
}
recset.Close ();
database.Close();
之前,我尝试在某个MoveNext后立即进行SetFieldValue操作,可是失败了:
---------------------------
excel
---------------------------
在不使用 AddNew 或 Edit 的情况下,更新 (Update) 或取消更新 (CancelUpdate)。
---------------------------
确定
---------------------------
然后通过搜索,发现要SetFieldValue,需要先Edit一下,完成后,要Update。于是成功了。
刚才想优化一下。现在的代码,每次SetFieldValue,都要先Edit然后Update,那么我能不能从第一个MoveNext开始之前,就先Edit,在最后一个的时候再Update呢?这样似乎能省不少时间!
结果,失败了!
原来,这个recset的SetFieldValue是针对单条、当前数据进行操作的,所以,要修改,必须对当前该条数据先进行Edit,修改后,再Update。
释然!