使用ADO的问题,请专家帮忙解答

lurenfu 2004-11-12 04:58:21
我在使用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秒多钟是不可思议的,请专家帮忙解答一下,看你们类似的操作是如何处理的,谢谢了,专家分可以送上四位数都没问题
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
erensheep 2004-11-12
  • 打赏
  • 举报
回复
impossible,我用同样的代码没你的问题
lurenfu 2004-11-12
  • 打赏
  • 举报
回复
麻烦各位大侠们在自己的电脑上测试一下ADO的速度
lurenfu 2004-11-12
  • 打赏
  • 举报
回复
我是用ADO来操作本机的mdb数据库,insert 1000条记录时用时5秒,我一度怀疑自己的用法有问题,但我用尽各种办法,操作时间依旧没有减少。所以请各位专家帮忙
zxhcloth 2004-11-12
  • 打赏
  • 举报
回复
如果是插入的话,可以用CONNECTION或COMMAND的EXECUTE直接插入,如果用其他的关系数据库,可以用存储过程
DebugXP 2004-11-12
  • 打赏
  • 举报
回复
换Insert语句试试
hch_45 2004-11-12
  • 打赏
  • 举报
回复
楼上,这里说的是VC不是DELPHI


for ( int i = 0; i < 1000; i++ ) {
rs->AddNew();
rs->Fields->Item["name"]->Value = _bstr_t("Bill Gates");
}

这很正常。
hch_45 2004-11-12
  • 打赏
  • 举报
回复
楼说的是VC不是DELPHI


for ( int i = 0; i < 1000; i++ ) {
rs->AddNew();
rs->Fields->Item["name"]->Value = _bstr_t("Bill Gates");
}

这很正常。
Kudeet 2004-11-12
  • 打赏
  • 举报
回复
参考:
http://search.csdn.net/Expert/topic/813/813853.xml?temp=.9549982

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧