我在使用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秒多钟是不可思议的,请专家帮忙解答一下,看你们类似的操作是如何处理的,谢谢了,专家分可以送上四位数都没问题
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秒多钟是不可思议的,请专家帮忙解答一下,看你们类似的操作是如何处理的,谢谢了,专家分可以送上四位数都没问题
解决方案 »
- 为什么我的列举本地连接的程序运行时总会出错啊?
- 为什么总是说 Unhandled exception in ChatRoomClient.exe 0xC0000005 Access Violation
- com组件编译时"无法解析的外部符号"的问题
- 请问如何将录音保存为*.wav文件?
- 如何在屏幕拷贝的时候能够包含鼠标
- 怎么作出象winamp那样的停靠窗口?
- 请问如何在一个后台程序中获取当前鼠标在屏幕上的位置?
- 当类里面消息触发时,想改变界面的static edit的值,又要保持类的完整形。怎么做?急
- 如何使toolbar上的某个button变灰
- pDC画坐标图的时候应该把数据存在哪里
- 一个简单的问题,但小弟我不会,在线等,解决就结帖。
- 我在Resource中把Toolbar中的所有按钮都删了,程序报错,该怎么恢复啊!!!
http://search.csdn.net/Expert/topic/813/813853.xml?temp=.9549982
for ( int i = 0; i < 1000; i++ ) {
rs->AddNew();
rs->Fields->Item["name"]->Value = _bstr_t("Bill Gates");
}这很正常。
for ( int i = 0; i < 1000; i++ ) {
rs->AddNew();
rs->Fields->Item["name"]->Value = _bstr_t("Bill Gates");
}这很正常。