我在使用ADO访问本地的ACCESS的MDB数据库,往某个表里插入1000条记录,操作时间竟然达到了5到6秒钟,这样慢的操作实在难以让人接受。各位专家有什么好的建议?我使用的是批量增加模式。代码片断如下:
rs, pConnect为已经创建的RecordSetPtr和ConnectionPtr指针rs->CursorType = adOpenKeyset;
rs->LockType = adLockBatchOptimistic;
rs->CursorLocation = adUseClient;
rs->Open( "SELECT name FROM USER WHERE 0==1", pConnect->GetInterfacePtr(), adOpenStatic, adLockBatchOptimistic, adCmdText );
for ( int i = 0; i < 1000; i++ ) {
    rs->AddNew();
    rs->Fields->Item["name"]->Value = _bstr_t("Bill Gates");
}
DWORD startTime = GetTickCount();
rs->UpdateBatch( adAffectAll );
rs->Close();
DWORD endTime = GetTickCount();
CString str;
str.Format( "更新时间为%d毫秒", endTime-startTime );
AfxMessageBox(str);数据源为本地电脑上的一个mdb数据库,这样的操作要5秒多钟是不可思议的,请专家帮忙解答一下,看你们类似的操作是如何处理的,谢谢了,专家分可以送上四位数都没问题

解决方案 »

  1.   

    参考:
    http://search.csdn.net/Expert/topic/813/813853.xml?temp=.9549982
      

  2.   

    楼说的是VC不是DELPHI
    for ( int i = 0; i < 1000; i++ ) {
        rs->AddNew();
        rs->Fields->Item["name"]->Value = _bstr_t("Bill Gates");
    }这很正常。
      

  3.   

    楼上,这里说的是VC不是DELPHI
    for ( int i = 0; i < 1000; i++ ) {
        rs->AddNew();
        rs->Fields->Item["name"]->Value = _bstr_t("Bill Gates");
    }这很正常。
      

  4.   

    如果是插入的话,可以用CONNECTION或COMMAND的EXECUTE直接插入,如果用其他的关系数据库,可以用存储过程
      

  5.   

    我是用ADO来操作本机的mdb数据库,insert 1000条记录时用时5秒,我一度怀疑自己的用法有问题,但我用尽各种办法,操作时间依旧没有减少。所以请各位专家帮忙
      

  6.   

    麻烦各位大侠们在自己的电脑上测试一下ADO的速度
      

  7.   

    impossible,我用同样的代码没你的问题