表内记录大约5万多条我想删除前1000条用什么方法速度能比较快?
我用的方法是:
for (i=0;i<m_deletename.GetSize();i++)
{
strSQL="DELETE FROM "+m_filenamesave+" WHERE datatime = '"+((CGtry*)m_deletename.GetAt(i))->m_n+"'";
m_pConnection->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText);
}
但删除起来速度太慢了,有什么更好的方法吗?
m_deletename中存储的是要删除表的前1000条记录的datatime。
我用的方法是:
for (i=0;i<m_deletename.GetSize();i++)
{
strSQL="DELETE FROM "+m_filenamesave+" WHERE datatime = '"+((CGtry*)m_deletename.GetAt(i))->m_n+"'";
m_pConnection->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText);
}
但删除起来速度太慢了,有什么更好的方法吗?
m_deletename中存储的是要删除表的前1000条记录的datatime。
解决方案 »
- 求一篇英文文献
- 非模态对话框删除指针的问题!
- 视频监控的几个问题!
- 关于opengl中的鼠标控制
- Proxy.h找不到
- 高分求助怎样用gdi+读取oracle中的blob对象(保存的是jpeg图片)
- CByteArray array:关于Setoutput()发送的具体是什么,是array[0],还是整个array数组?
- 急!!!!分不够再加急!!!!对用水晶报表4.6开发的软件,如何用installshield进行打包,要打包哪些文件?!!!!
- 一个关于api函数的问题
- 急求vc++语言编写的MFC记事本程序源代码啊
- 各位大虾帮帮忙
- 请问如何通过文件的绝对PIDL获取其文件的创建时间、修改时间、文件大小等信息?
你这个表中的【datatime】字段是字符型吧?
那为什么不用【时期时间】类型?
如果用【日期时间】类型的话,一条命令即可;而现在你使用了 1000 条命令。
你的【datatime】就是 字符型,在 ACCESS MDB 中,日期型要使用 ## 号;建议你改成【日期时间】类型,即【DateTime】类型。
strSQL="delete top 1000 * from 矿号:"+dlg.m_inputmine+"队号:"+dlg.m_inputteam+"井号:"+dlg.m_inputwell;
m_pConnection->Execute((_bstr_t)(strSQL),&RecordsAffected ,adCmdText);
调试到的时候显示Unhandled exception........的错误呀
楼主可以这样用记录集UpdateBatch的方式
先打开记录集(注意打开方式要支持UpdateBatch)
然后delete前 N条记录(调用的是记录集的delete方法,一个循环)
最后UpdateBatch这样应该会快一点
楼主可以这样用记录集UpdateBatch的方式
先打开记录集(注意打开方式要支持UpdateBatch)
然后delete前 N条记录(调用的是记录集的delete方法,一个循环)
最后UpdateBatch 这样应该会快一点
应该怎么写呀?
谢谢啊。
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Openm_pRecordset->delete(循环)m_pRecordset->Updatebatch()你的前1000条不知道有什么规律
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open m_pRecordset->delete(循环) m_pRecordset->Updatebatch() 你的前1000条不知道有什么规律
我的前一千条是字符型的,是按字符型排序的。